Erreurs incompatible types in assignment en c [urgent]

Signaler
Messages postés
10
Date d'inscription
samedi 7 janvier 2006
Statut
Membre
Dernière intervention
10 janvier 2006
-
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
-
Bonsoir,

J'ai de multiples erreurs Incompatible types in assignment que je ne comprends pas quand je compile mon module de saisie dont voici le code :

#include <stdio.h>
#include <stdlib.h>

// prototype de la stucture archivant les données sur les combattants//

int race;
int choix;
char guerrier;
char pretre;
char mage;

struct combattant
{ char nom[20];
char metier[20];
int pv;
int pa;
int sortmage;
int sortpretre;
};


// fonction qui permetra le choix du metier//
int Choixmetier()
{

printf ("\n Dans ce univers d'heroic-fantasy il existe plusieur type de personnage \n");
printf ("Le guerrier qui confere 2 points d'attaque en plus de ce de la race.\n");
// if race !=2
printf ("Le mage qui possede le pouvoir de diviser les points de vie de l'enemie ciblé par 2.\n");
// if race !=3
printf ("Le pretre lui à la capacité de soigner entierement un membre de son equipe.\n");
printf ("alors lequels allez vous choisir \n 1: Le guerrier \n 2: Le mage \n 3: Le pretre \n");
scanf ("%d", &choix);
switch(choix)
{
case 1: printf ("\n Vous avez decider de jouer un Guerrier.\n");
break;
case 2: printf ("\n Vous avez decider de jouer un mage. Le monde de la magie s'ouvre à vous.\n");
break;
case 3: printf ("\n Vous avez decider de jouer un pretre. Les autres combattants du groupe vous en remercient.\n");
break;

return(0);
}
}

// fonction permetant le choix de la race//
int Choixrace ()
{
int race;
printf("choixrace");
//ici sera decrit chacune des races proposŽ dans notre jeu
// le choix est fait par un switch
scanf ("%d", &race);
switch(race)
{
case 1: printf("vous avez choisi les humain");
// et info relative
break;
case 2: printf("vous avez choisi les elfe");
// et info relative
break;
case 3: printf("vous avez choisi les nain") ;
// et info relative
break;

return(race);

}
}


main()
{



int perso = 0;
// structure pour le premier groupe et initialisation de celui ci (saisie des nom) , enregistrement //
/*for (perso = 0; perso <= 0; perso++)*/
// cette boucle for ne sert pour le moment a rien sauf a repeter 2 fois l iniialisation une fois pourchaque group//
// Sauf que etant donnŽ les pointeur sont different cela ne sera pas possible a moin de pointer et d'incrementer//
// Cette fonction pourra etre tentŽ durant la phase d'optimisation//
{

Choixrace();

struct combattant perso0, perso1, perso2, perso3, perso4 , perso5;

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso1.nom);
Choixmetier();
printf ("voila choix %d", choix);
// If else choisi pour la propreter du programme lors du l'utilisation des instruction if .^^
if (choix == 1)
{
perso1.metier = 'guerrier';
}
else if (choix == 2)
{
perso1.metier = 256;
}
else perso1.metier = 3864;


//initialisation des point de vie et point d attaque de chaque personnage en fonction de la race
if (race 1) {perso1.pv 2 ; perso1.pa = 2;}
else if (race 2) {perso1.pv 2 ; perso1.pa = 2 ;}
else {perso1.pv 2 ; perso1.pa 2 ;}
/* puts ("\n selectionner un metier\n");
scanf ("%s", &perso1.metier);*/

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso2.nom);
//puts ("\n selectionner un metier\n");//
Choixmetier();
printf ("voila choix %d", choix);
if (choix 1) perso2.metier 121 ;
else if (choix 2) perso2.metier 223 ;
else perso2.metier = 3321 ;
//initialisation des point de vie et point d attaque de chaque personnage en fonction de la race
if (race 1) {perso2.pv 2 ; perso2.pa = 2;}
else if (race 2) {perso2.pv 2 ; perso2.pa = 2 ;}
else {perso2.pv 2 ; perso2.pa 2 ;}
// scanf ("%s", &perso2.metier);//

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso3.nom);
//puts ("\n selectionner un metier\n");//
Choixmetier();
printf ("voila choix %d", choix);
if (choix 1) perso3.metier 151 ;
else if (choix 2) perso3.metier 2564 ;
else perso3.metier = 325;
//initialisation des point de vie et point d attaque de chaque personnage en fonction de la race
if (race 1) {perso3.pv 2 ; perso3.pa = 2;}
else if (race 2) {perso3.pv 2 ; perso3.pa = 2 ;}
else {perso3.pv 2 ; perso3.pa 2 ;}
//scanf ("%s", &perso3.metier);//

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso4.nom);
//puts ("\n selectionner un metier\n");//
Choixmetier();
printf ("voila choix %d", choix);
if (choix 1) perso4.metier 1 ;
else if (choix 2) perso4.metier 2 ;
else perso4.metier = 3 ;
//initialisation des point de vie et point d attaque de chaque personnage en fonction de la race
if (race 1) {perso4.pv 2 ; perso4.pa = 2;}
else if (race 2) {perso4.pv 2 ; perso4.pa = 2 ;}
else {perso4.pv 2 ; perso4.pa 2 ;}
//scanf ("%s", &perso4.metier);//

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso5.nom);
//puts ("\n selectionner un metier\n");//
Choixmetier();
printf ("voila choix %d", choix);
if (choix 1) perso5.metier 1 ;
else if (choix 2) perso5.metier 2 ;
else perso5.metier = 3 ;
//initialisation des point de vie et point d attaque de chaque personnage en fonction de la race
if (race 1) {perso5.pv 2 ; perso5.pa = 2;}
else if (race 2) {perso5.pv 2 ; perso5.pa = 2 ;}
else {perso5.pv 2 ; perso5.pa 2 ;}
//scanf ("%s", &perso5.metier);//

puts ("affichons nos precedent choix\n");

printf ("\n le nom de perso 1 est %s\n", perso1.nom);
printf ("\n le metier de perso 1 est %d\n", perso1.metier);

printf ("\n le nom de perso 2 est %s\n", perso2.nom);
printf ("\n le metier de perso 2 est %d\n", perso2.metier);

printf ("\n le nom de perso 3 est %s\n", perso3.nom);
printf ("\n le metier de perso 3 est %d\n", perso3.metier);

printf ("\n le nom de perso 4 est %s\n", perso4.nom);
printf ("\n le metier de perso 4 est %d\n", perso4.metier);

printf ("\n le nom de perso 5 est %s\n", perso5.nom);
printf ("\n le metier de perso 5 est %d\n", perso5.metier);



// initialisationn du deuxieme groupe de la meme facon ke le premier .//

// Choixrace() //

/*struct combattant perso0, perso1, perso2, perso3, perso4 , perso5;

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso21.nom);
puts ("\n selectionner un metier\n");
scanf ("%s", &perso21.metier);

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso22.nom);
puts ("\n selectionner un metier\n");
scanf ("%s", &perso22.metier);

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso23.nom);
puts ("\n selectionner un metier\n");
scanf ("%s", &perso23.metier);

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso24.nom);
puts ("\n selectionner un metier\n");
scanf ("%s", &perso24.metier);

puts ("selectioner un nom du perso\n");
scanf ("%s", &perso25.nom);
puts ("\n selectionner un metier\n");
scanf ("%s", &perso25.metier);

puts ("affichons nos precedent choix\n");

printf ("\n le nom de perso 1 est %s\n", perso21.2nom);
printf ("\n le metier de perso 1 est %s\n", perso1.metier);

printf ("\n le nom de perso 2 est %s\n", perso22.nom);
printf ("\n le metier de perso 2 est %s\n", perso22.metier);

printf ("\n le nom de perso 3 est %s\n", perso23.nom);
printf ("\n le metier de perso 3 est %s\n", perso23.metier);

printf ("\n le nom de perso 4 est %s\n", perso24.nom);
printf ("\n le metier de perso 4 est %s\n", perso24.metier);

printf ("\n le nom de perso 5 est %s\n", perso25.nom);
printf ("\n le metier de perso 5 est %s\n", perso25.metier);*/;


/*void testaffichage ()
{
int ads;

printf ("voyons si ca marche\n tape qqchose pour voir\n");
scanf ("%d", &ads);

if (ads = 2)
printf ("\n le nom de perso 1 est %s\n", perso1.nom);
printf ("\n le metier de perso 1 est %s\n", perso1.metier);

system("pause");
}
testaffichage ();*/

system("pause");

}
}





Quelqu'un peut-il m'aider ?
Merci !

2 réponses

Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
1
Wao tu connais le retour chariot ? lol
Mes yeeeeeeeeux !
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
1
Hum tu peux mettre le numero de ligne ?

Je pense que tu as mettre un '&' ou '*' à un endroit où il fallait pas ou au contraire l'oublier.