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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager