bonsoir , mon but de ce code est de faire une liste chainée , chaque liste chainée se constitue d'une structure contenant les information des étudiants (numero,nom,prenom,moyenne) et j'ai fait une boucle while qui sera désactivée lorsque je saisis un nombre différent de 1 et ainsi afficher toute la liste chainée des étudiants .
saif que le programme se plante dans l'exécution ,et parfois il saute des scanfs .
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
#include <stdio.h>
#include <stdlib.h>
 
 
 
 
 
int main(int argc , char *agrv[])
{
    int classement=1;
int nb=1;
   typedef struct info{
   char  numero[10] ;
   char nom [20];
   char prenom [20];
   char niveau [20];
   float moyenne ;
   struct info *next;
}etudiant;
etudiant *tete,*p;
  tete=NULL;
  while(nb==1)
{
 
  etudiant *eleve;
eleve=(etudiant*)malloc(sizeof(etudiant));
printf("entrer le numero del'etudiant %d: \n",classement);
 scanf("%s",eleve->numero)  ;
printf("entrer le nom del'etudiant  \n");
 scanf("%2f",eleve->nom)  ;
  printf("entrer le prenom del'etudiant  %d\n",classement);
  scanf("%2f",eleve->prenom)  ;
 printf("entrer le niveau del'etudiant  %d\n",classement);
  scanf("%2f",eleve->niveau)  ;
printf("entrer la moyenne del'etudiant %d\n",classement);
 scanf("%2f",eleve->moyenne)  ;
eleve->next=tete ;
tete=eleve ;
printf("\n\n\nsi vous voulez entrer les information d'un nouvel eleve ,taper 1\n") ;
scanf("%d",&nb)  ;
classement++;
}
p=tete; classement=1;
while(p!=NULL)
{
printf("____________________________________________");
 printf("\nles information de l'eleve numero %d\n",classement );
 printf("%s \n",p->numero) ;
  printf("%s \n",p->nom) ;
 printf("%s \n",p->prenom) ;
 printf("%s \n",p->niveau) ;
 printf("%d \n",p->moyenne) ; 
classement++;
p=p->next;
}
  return 0;
}