J'arrive pas à compiler ce code !!

achourmeddeb Messages postés 4 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 31 mars 2010 - 30 mars 2010 à 19:53
achourmeddeb Messages postés 4 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 31 mars 2010 - 31 mars 2010 à 15:38
bonsoir tout le monde , j'ai un projet à rendre mais je n'arrive pas à compiler ce code et je pense que le problème réside dans l'une des trois fonctions !! Qui pourra m'aider !!
c'est un programme de gestion des clients d'une auto-ecole !!

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

struct date{
int jour;
int mois;
int annee;
};
typedef struct date date;
struct heure{
int h;
int m;
};
struct cellule_seance{
int id_seance;
struct heure heure_seance;
date date_seance;
struct cellule_seance *suiv;
};
typedef struct cellule_seance cellule_seance;
struct liste_seance{
cellule_seance *tete;
cellule_seance *queue;
};
typedef struct liste_seance liste_seance;
struct faute_seance{
int id_seance;
int nb_faute;
};
typedef struct faute_seance faute_seance;
struct examen_eleve{
int id_examen;
int nb_fautes;
} ;

struct cellule_eleve{
int id_eleve;
char *nom;
char *prenom;
int nb_seance;
faute_seance s[20];
float moy;
int nb_examen;
examen_eleve e[20];
struct cellule_eleve *suiv;
};
typedef struct cellule_eleve cellule_eleve;
struct liste_eleve{
cellule_eleve *tete;
cellule_eleve *queue;
};

typedef struct liste_eleve liste_eleve;
struct examen{
int id_examen;
date date_examen;
heure heure_examen;
int nb_eleve;
int nb_reussis;
struct examen *suiv;
};
typedef struct examen examen;
struct liste_examen{
examen *tete;
examen* queue;
};
typedef liste_examen liste_examen;
void remplir(liste_eleve l){
cellule_eleve *p,*c;
/**************************1**************************/
l.tete=(cellule_eleve*)malloc(sizeof(cellule_eleve));
c=(cellule_eleve*)malloc(sizeof(cellule_eleve));
p=(cellule_eleve*)malloc(sizeof(cellule_eleve));

c->id_eleve=33;
c->nom="bensaad";
c->prenom="amir";
c->nb_seance=10;

c->s[0].nb_faute=0; c->s[0].id_seance=1;
c->s[1].nb_faute=0; c->s[1].id_seance=2;
c->s[2].nb_faute=5; c->s[2].id_seance=3;
c->s[3].nb_faute=3; c->s[3].id_seance=4;
c->s[4].nb_faute=2; c->s[4].id_seance=5;
c->s[5].nb_faute=1; c->s[5].id_seance=6;
c->s[6].nb_faute=4; c->s[6].id_seance=7;
c->s[7].nb_faute=0; c->s[7].id_seance=8;
c->s[8].nb_faute=0; c->s[8].id_seance=9;
c->s[9].nb_faute=1; c->s[9].id_seance=10;


c->suiv=NULL;
p=c;
l.tete=c;




/**************************2**************************/

c->id_eleve=26;
c->nom="tifefi";
c->prenom="ali";
c->nb_seance=4;

c->s[0].nb_faute=0; c->s[0].id_seance=6;
c->s[1].nb_faute=2; c->s[1].id_seance=7;
c->s[2].nb_faute=1; c->s[2].id_seance=8;
c->s[3].nb_faute=1; c->s[3].id_seance=9;
c->suiv=NULL;
p->suiv=c;


/**************************3**************************/

c->id_eleve=51;
c->nom="trabelsi";
c->prenom="salma";
c->nb_seance=10;

c->s[0].nb_faute=3; c->s[0].id_seance=1;
c->s[1].nb_faute=3; c->s[1].id_seance=2;
c->s[2].nb_faute=3; c->s[2].id_seance=3;
c->s[3].nb_faute=1; c->s[3].id_seance=4;
c->s[4].nb_faute=0; c->s[4].id_seance=5;
c->s[5].nb_faute=0; c->s[5].id_seance=6;
c->s[6].nb_faute=0; c->s[6].id_seance=7;
c->s[7].nb_faute=2; c->s[7].id_seance=8;
c->s[8].nb_faute=1; c->s[8].id_seance=9;
c->s[9].nb_faute=1; c->s[9].id_seance=10;
c->suiv=NULL;
p->suiv=c;
p=c;





/**************************4**************************/
c->id_eleve=32;
c->nom="zendeh";
c->prenom="mounir";
c->nb_seance=8;

c->s[0].nb_faute=3; c->s[0].id_seance=1;
c->s[1].nb_faute=4; c->s[1].id_seance=3;
c->s[2].nb_faute=6; c->s[2].id_seance=5;
c->s[3].nb_faute=2; c->s[3].id_seance=6;
c->s[4].nb_faute=1; c->s[4].id_seance=7;
c->s[5].nb_faute=0; c->s[5].id_seance=8;
c->s[6].nb_faute=0; c->s[6].id_seance=9;
c->s[7].nb_faute=1; c->s[7].id_seance=10;



c->suiv=NULL;
p=c;
l.tete=c;

}

/**************************5**************************/
/* p->id_eleve=43;
p->nom="elbeji";
p->prenom="najla";
p->nb_seance=6;

p->s[0].nb_faute=3; p->s[0].id_seance=3;
p->s[1].nb_faute=0; p->s[1].id_seance=4;
p->s[2].nb_faute=0; p->s[2].id_seance=5;
p->s[3].nb_faute=1; p->s[3].id_seance=6;
p->s[4].nb_faute=3; p->s[4].id_seance=7;
p->s[5].nb_faute=0; p->s[5].id_seance=8;
p->suiv=(cellule_eleve*)malloc(sizeof(cellule_eleve));
p=p->suiv;

/**************************6**************************/
/* p->id_eleve=53;
p->nom="ayari";
p->prenom="mohamed";
p->nb_seance=3;

p->s[0].nb_faute=3; p->s[0].id_seance=7;
p->s[1].nb_faute=2; p->s[1].id_seance=9;
p->s[2].nb_faute=1; p->s[2].id_seance=10;
p->suiv=(cellule_eleve*)malloc(sizeof(cellule_eleve));
p=p->suiv;

/**************************7**************************/
/* p->id_eleve=13;
p->nom="bensalah";
p->prenom="ahmed";
p->nb_seance=5;

p->s[0].nb_faute=5; p->s[0].id_seance=1;
p->s[1].nb_faute=0; p->s[1].id_seance=2;
p->s[2].nb_faute=0; p->s[2].id_seance=3;
p->s[3].nb_faute=1; p->s[3].id_seance=4;
p->s[4].nb_faute=3; p->s[4].id_seance=5;
p->suiv=(cellule_eleve*)malloc(sizeof(cellule_eleve));
p=p->suiv;

/**************************8**************************/
/* p->id_eleve=25;
p->nom="guirat";
p->prenom="sophia";
p->nb_seance=4;

p->s[0].nb_faute=3; p->s[0].id_seance=5;
p->s[1].nb_faute=2; p->s[1].id_seance=6;
p->s[2].nb_faute=0; p->s[2].id_seance=7;
p->s[3].nb_faute=0; p->s[3].id_seance=9;
p->suiv=(cellule_eleve*)malloc(sizeof(cellule_eleve));
p=p->suiv;

/**************************9**************************/ +
/* p->id_eleve=19;
p->nom="bensalem";
p->prenom="ridha";
p->nb_seance=6;

p->s[0].nb_faute=3; p->s[0].id_seance=3;
p->s[1].nb_faute=1; p->s[1].id_seance=4;
p->s[2].nb_faute=2; p->s[2].id_seance=6;
p->s[3].nb_faute=0; p->s[3].id_seance=7;
p->s[4].nb_faute=1; p->s[4].id_seance=8;
p->s[5].nb_faute=0; p->s[5].id_seance=10;
p->suiv=(cellule_eleve*)malloc(sizeof(cellule_eleve));
p=p->suiv;

/**************************10**************************/
/* c=(cellule_eleve*)malloc(sizeof(cellule_eleve));
c->id_eleve=20;
c->nom="hamemi";
c->prenom="olfa";
c->nb_seance=5;

c->s[0].nb_faute=4; c->s[0].id_seance=1;
c->s[1].nb_faute=2; c->s[1].id_seance=2;
c->s[2].nb_faute=0; c->s[2].id_seance=4;
c->s[3].nb_faute=3; c->s[3].id_seance=5;
c->s[3].nb_faute=0; c->s[3].id_seance=6;
c->suiv=NULL;
p->suiv=c;
p=c;

l.queue=p;

} */
void affichage(liste_eleve t){
liste_eleve p; p.tete=t.tete;
int i=0,j;
while(p.tete->suiv!=t.queue){
printf("\nl'eleve %s %s numéro %d qui a comme identificateur %d",p.tete->nom,p.tete->prenom,i,p.tete->id_eleve);
if(p.tete->nb_seance!=0){
printf("a assisté à %d séance(s):",p.tete->nb_seance);
for(j=0;jnb_seance;j++){
printf("\n%d\tnombre de fautes est: %d",p.tete->s[j].id_seance,p.tete->s[j].nb_faute);
}
}
printf("cet(te) eleve a passé %d examen(s):",p.tete->nb_examen);
if(p.tete->nb_examen!=0){
for(j=0;jnb_examen;j++){
printf("\nl examen %d\tnombre de faute(s):%d",p.tete->e[j].id_examen,p.tete->e[j].nb_fautes);
}
}
p.tete=p.tete->suiv;
i++;
}
}

void affichage_seance(liste_seance l){
cellule_seance *p;p=l.tete; int i=1;

while(p->suiv!=l.queue){
printf("\nla seance d identificateur %d de la date %d/%d/%d à l heure %dh:%d",i,p->date_seance.jour,p->date_seance.mois,p->date_seance.annee,p->heure_seance.h,p->heure_seance.m);
p=p->suiv;
i++;
}
}
/*
void affichage_examen(liste_examen*.tete t,liste_examen*.queue q){
liste_examen*.tete p=t; int i=1;

while(p*.suiv!=q){
printf("\nl examen numéro %d de la date %d/%d/%d à l'heure %dh:%d",i,p*.date_examen.jour,p*.date_examen.mois,p*.date_examen.annee,p*.heure_examen.h,p*.heure_examen.m);
if(p*.nb_eleve!=0){
printf("dont %d eleves ont assisté et %d réussi(s)",p*.nb_eleve,p*.nb_reussis);
}
else printf("qui n'est pas encore passé");
p=p*.suiv;i++;
}
}
void insertion_eleve(liste_eleve l,int nb_eleve){
liste_eleve*.tete p,q,r;
malloc(q,sizeof(cellule_eleve));
printf("\ndonncer lidentificateur de l'eleve");scanf("%d",q*.id_eleve);
printf("\ndonncer le nom de l'eleve");scanf("%s",q*.nom);
printf("\ndonncer le prenom de l'eleve");scanf("%s",q*.prenom);
q*.nb_seance=0;q*.nb_examen=0;
if(pos==nb_eleve){
p=l*.queue;
l*.queue=q;p*.suiv=q;q*.suiv=null;
}
else if(pos==1){
q*.suiv=l*.tete;l*.tete=q;
}
else{p=l*.tete
if (pos!=2){
for(i=0;i<pos-2;i++){
p=p*.suiv;
}
}
r=p*.suiv;p*.suiv=q;q*.suiv=r;
}
}
void ajout_seance_eleve(liste_eleve l){
int a; liste_eleve*.tete p;
printf("donner l'identificateur de l'eleve auquel vouv voulez ajouter une séance");
scanf("%d",&a);
while(p*.id_eleve!=a){
p=p*.suiv;
}
p*.nb_seance++;
printf("\ndonner l'identificateur de cette seance ajoutée");
scanf("%d",&p*.s[nb_seance].id_examen);
printf("\ndonner le nombre de fautes obtenues par l'eleve au cours de cette seance");
scanf("%d",&p*.s[nb_seance].nb_fautes);
}

void modifier_faute_seance(liste_eleve l){
int a,i,b; liste_eleve*.tete p=l*.tete;
printf("\ndonner l'identificateur de l'eleve que vous voulez changer le nombre de fautes de seance");
scanf("%d",&a);
while(p*.id_eleve!=a){
p=p*.suiv;
}
printf("\ndonner l'identificateur de la seance que vous voulez changer le nombre de fautes");
scanf("%d",&b);
i=0;
while(p*.s[i].id_seance!=b){
i++;
}
printf("\nvoila l'ancien nombre de fautes %d veuillez entrer le nouveau nombre",p*.s[i].nb_fautes);
scanf("%d",&p*.s[i].nb_fautes);
printf("\nmodification terminée");
}


void modifier_faute_examen(liste_eleve l){
int a,i,b; liste_eleve*.tete p=l*.tete;
printf("\ndonner l'identificateur de l'eleve que vous voulez changer le nombre de fautes d'examen");
scanf("%d",&a);
while(p*.id_eleve!=a){
p=p*.suiv;
}
printf("\ndonner l'identificateur de l'examen que vous voulez changer le nombre de fautes");
scanf("%d",&b);
i=0;
while(p*.e[i].id_examen!=b){
i++;
}
printf("\nvoila l'ancien nombre de fautes %d veuillez entrer le nouveau nombre",p*.s[i].nb_fautes);
scanf("%d",&p*.e[i].nb_fautes);
printf("\nmodification terminée");
}


*/void modification_seance(liste_seance l){
int a; liste_seance*.tete p=l*.tete;
printf("\ndonner l'identificateur de la seance que vous voulez modifier");
scanf("%d",&a);
while(p*.id_seance!=a){
p=p*.suiv;
}
printf("\ntaper le nouveau identificateur de cette seance si vous voulez le changer sinon taper l'ancien");
scanf("%d",&p*.id_seance);
printf("\ntaper la nouvelle date si vous voulez la changer sinon taper l'ancienne date: jour mois année");
scanf("%d",&p*.date_seance.jour);
scanf("%d",&p*.date_seance.mois);
scanf("%d",&p*.date_seance.annee);
printf("\ntaper la nouvelle heure si vous voulez la changer sinon taper l'ancienne: heure minutes");
scanf("%d",&p*.heure_seance.h);
scanf("%d",&p*.heure_seance.m);
}


void suppression_seance(liste_seance l){
liste_seance*.tete p=l*.tete,q;
int a;
printf("\ndonner l'identificateur de la seance que vous voulez supprimer");
scanf("%d",&a);
if(a==p*.id_seance){
q=p;l*.tete=p*.suiv;
free(q);
}
else if(a==l*.queue.id_seance){
while(p*.suiv.id_seance!=a){
p=p*.suiv;
}
q=l*.queue;
p*.suiv=NULL;
l*queue=p;free(q);
}
else{
while((p*.suiv.id_seance!=a){
p=p*.suiv;
}
q=p*.suiv;
p*.suiv=p*.suiv.suiv;
free(q);
}
}

/*
void I(liste_eleve l){
liste_eleve*.tete p=l*.tete;
while(p*.suiv!=NULL){
if(p*.nb_examen!=0){
printf("\n%s",p*.nom);
printf("\t%s",p*.prenom);
}
}


void II(liste_eleve l){
liste_eleve*.tete p=l*.tete;
int i,a;
while(p*.suiv!=NULL){
a=1;i=0;
while(a==1){
if((p*.s[i+nb_seance-4]<=5)&&(i<p*.nb_seance)){
i++;
}
}
if(a==1){
printf(("\n%s",&p*.nom);
printf(("\t%s",&p*.prenom);
}
p=p*.suiv;
}
}
void III(liste_eleve l1 liste_seance l2){
liste_eleve*.tete p=l1*.tete;
liste_seance*.tete q=l2*.tete;
printf("les seances qui ont été testéespar tout les élèves sont ceux aui ont été passé dans les sances d'identificateur : ");
while(q*.suiv!=NULL){
a=1;i=0;
while((a==1)&&(p*.suiv!=NULL)){
while((a==1)&&(i!=p*.nb_seance)){
if(p*.s[i].id_seance!=q*.id_seance){
a=0;
}
else i++;
p=p*.suiv;
}
if(a==1){printf("\n%d",q*.id_seance);}
q=q*.suiv;
}
void echange(cellule_eleve p,q){
cellule_eleve aux; int i;
aux*.id_eleve=p*.id_eleve;
aux*.nom=p*.nom;
aux*.prenom=p*.prenom;
aux*.nb_seance=p*.nb_seance;
aux*.moy=p*.moy;
aux*.nb_examen=p*.nb_examen;
for(i=0;i<p*.nb_seance;i++){
aux.s[i].id_seance=p*.s[i].id_seance;
aux*.s[i].nb_fautes=p*.s[i].nb_fautes;
}
for(i=0;i<p*.nb_examen;i++){
aux.s[i].id_examen=p*.s[i].id_examen;
aux*.s[i].nb_fautes=p*.s[i].nb_fautes;
}
p*.id_eleve=q*.id_eleve;
p*.nom=q*.nom;
p*.prenom=q*.prenom;
p*.nb_seance=q*.nb_seance;
p*.moy=q*.moy;
p*.nb_examen=q*.nb_examen;
for(i=0;i<q*.nb_seance;i++){
p.s[i].id_seance=q*.s[i].id_seance;
p*.s[i].nb_fautes=q*.s[i].nb_fautes;
}
for(i=0;i<q*.nb_examen;i++){
aux.s[i].id_examen=q*.s[i].id_examen;
aux*.s[i].nb_fautes=q*.s[i].nb_fautes;
}

q*.id_eleve=aux*.id_eleve;
q*.nom=aux*.nom;
q*.prenom= aux*.prenom;
q*.nb_seance=aux*.nb_seance;
q*.moy=aux*.moy;
q*.nb_examen=aux*.nb_examen;
for(i=0;i<aux*.nb_seance;i++){
q.s[i].id_seance=aux*.s[i].id_seance;
q*.s[i].nb_fautes=aux*.s[i].nb_fautes;
}
for(i=0;i<aux*.nb_examen;i++){
aux.s[i].id_examen=aux*.s[i].id_examen;
aux*.s[i].nb_fautes=aux*.s[i].nb_fautes;
}



void IV(liste_eleve l){
liste_eleve*.tete p=l*.tete,q,r=l*.tete;
int i,a=0,permut;
while(p*.suiv!=NULL){
for(i=0;i<p*.nb_seance;i++){
a=a+p*.s[i].nb_fautes;
}
p*.moy=a/p*.nb_seance;
p=p*.suiv;
};
do{
permut=0;
while(r!=NULL){
if(r*.moy<q*.moy){
echange(r,q);
permut=1;
}
r=r*.suiv;q=q*.suiv;
}
}while(permut==1);
}
void V(liste_seance l1,liste_eleve l2){
liste_seance p=l1*.tete;
liste_eleve q=l2*.tete;
int a,b,i;

while(p*.suiv){
a=1;
while((q*.suiv)&&(a==1)){
i=0;b=1;
while((i<q*.nb_seance)&&(b==1)){
if(q*.s[i].id_seance==p*.id_seance){
i++;
}
else b=0;
}
if(b==1){
printf("la seance %d n'a jamais été utilisée",p*.id_seance);
}
q=q*.suiv;
}
p=p*.suiv;
}
*/
void main(){
liste_eleve l;
l.tete=(cellule_eleve*)malloc(sizeof(cellule_eleve));
int nb_seance=10;
int nb_eleve=10;
remplir(l);
affichage(l);

}


Achour

5 réponses

deadhand Messages postés 152 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 27 août 2010 3
30 mars 2010 à 20:56
Il faudrait que tu nous donnes aussi l'erreur qu'il te renvoie !
0
achourmeddeb Messages postés 4 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 31 mars 2010
30 mars 2010 à 22:39
"ComeauTest.c", line 68: warning: parameter "l" was set but never used
void remplir(liste_eleve l){
^

"ComeauTest.c", line 177: warning: nested comment is not allowed
/**************************6**************************/
^

"ComeauTest.c", line 189: warning: nested comment is not allowed
/**************************7**************************/
^

"ComeauTest.c", line 203: warning: nested comment is not allowed
/**************************8**************************/
^

"ComeauTest.c", line 216: warning: nested comment is not allowed
/**************************9**************************/ +
^

"ComeauTest.c", line 216: error: expected a declaration
Wild guess: Should this be in a function block?
/**************************9**************************/ +
^

"ComeauTest.c", line 231: warning: nested comment is not allowed
/**************************10**************************/
^

"ComeauTest.c", line 409: warning: parsing restarts here after previous syntax error
q=p*.suiv;
^

"ComeauTest.c", line 410: error: identifier "p" is undefined
p*.suiv=p*.suiv.suiv;
^

"ComeauTest.c", line 410: error: expected an identifier
p*.suiv=p*.suiv.suiv;
^

"ComeauTest.c", line 410: error: identifier "p" is undefined
p*.suiv=p*.suiv.suiv;
^

"ComeauTest.c", line 410: error: expected an expression
p*.suiv=p*.suiv.suiv;
^

"ComeauTest.c", line 411: error: this declaration has no storage class or type
Hint: export syntax is: export template declaration
not: template export declaration
specifier, Wild guess: Should this be in a function block?
Wild Guess: You're using export but not using Comeau C++ 4.3.x
free(q);
^

"ComeauTest.c", line 411: error: declaration is incompatible with
"void free(void *) C" (declared at line 42 of
"stdlib.h")
free(q);
^

"ComeauTest.c", line 411: error: identifier "q" is undefined
free(q);
^

"ComeauTest.c", line 412: error: expected a declaration
Wild guess: Should this be in a function block?
}



Achour
0
deadhand Messages postés 152 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 27 août 2010 3
31 mars 2010 à 08:32
Première erreur :

Tu commences un commentaire que tu ne fermes jamais ! Une ouverture de commentaire doit correspondre à une fermeture (certains compilateur s'en fiche mais pas celui-ci apparement). Tu le fais sur plusieurs lignes.
/*
p->id_eleve=25; 


Deuxième erreur :
Pour moi (à moins que je ne me trompe), ce n'est pas une initialisation valide de 'p' :
liste_seance*.tete p=l*.tete,q; 
. En effet :
liste_seance*.tete
n'est pas un type ou une structure.
Tu dois faire :
cellule_seance * p,q;
p = liste_seance->tete;


Troisième erreur :
Idem pour 'q'

Voilà, je pense que ça devrait résoudre toutes les autres.
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
31 mars 2010 à 08:42
Eh bah !!!

Il y a beaucoup d'erreur de syntaxe !!! Je ne sais pas d'où tu sors cette syntaxe mais ce n'est pas du tout du C.

De plus, essaie de mettre ton code dans les balises C/C++ proposé dans la barre d'outil de la textbox de ce forum, ca sera plus lisible.

Tu as un '+' en fin de ligne d'un commentaire, vire-le.

Relis tout ton code en t'inspirant de ca :
tu as mis
void modifier_faute_seance(liste_eleve l){
int a,i,b; liste_eleve*.tete p=l*.tete; 

ce n'est pas du tout correct, voici ce qu'il faut faire :
void modifier_faute_seance(liste_eleve l){
int a,i,b; cellule_eleve *p=l.tete; 


les p*. ou autre q*. tu dois les remplacer par des p-> ou q->

Et apres on y verra plus clair s'il y a d'autres problèmes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
achourmeddeb Messages postés 4 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 31 mars 2010
31 mars 2010 à 15:38
merci je vais essayer !!

Achour
0
Rejoignez-nous