probleme affichage d'une liste à simple chainage
salut à tous j'ai un problème d'affichage d'une liste chainée l'insertion ça marche mais l'affichage n'affiche que le dernier élément saisie et ça plante voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct etudiant etudiant;
struct etudiant{
int code;
char nom[30];
char prenom[20];
float note[4];
char cours[4][20];
float moy;
etudiant *suivant;
};
etudiant *debut=NULL;
etudiant *fin=NULL;
int id=0;
void saisieinserer(){
etudiant *e;
e=(etudiant *)malloc(sizeof(etudiant));
e->code=id+1;
printf("Entrer le nom de l'etudiant: ");
scanf("%s",e->nom);
printf("Entrer le prenom de l'etudiant: ");
scanf("%s",e->prenom);
for(int i=0;i<4;i++)
{printf("Entrer le cours numero %d: ",i);
scanf("%s",e->cours[i]);
}
if(debut==NULL)
{debut=e;
fin=e;
}
else{e->suivant=debut;
debut=e;
}
}
void afficher(){
etudiant *e;
e=(etudiant *)malloc(sizeof(etudiant));
if(debut==NULL)
{printf("La liste est vide");}
else{e=debut;
while(e!=fin){
printf("%d\n",e->code);
printf("%s\n",e->nom);
printf("%s\n",e->prenom);
for(int i=0;i<4;i++)
printf("--%s\n",e->cours[i]);
e=e->suivant;
}
}
}
main(){
saisieinserer();
printf("-------------------");
//afficher();
saisieinserer();
printf("-------------------");
afficher();
getch();
return 0;
} |