salut
jutilse une liste chainée pour pouvoir traité une structure.
declaration de ma structure :
struct etu { char nom[25]; char prenom[25]; int numero; float note1; float note2; float total; struct etu* suiv; };
|
declaration des fonctions
void saisie(etudiant *); void affiche(etudiant*); void save(etudiant,char *); void load(etudiant, char *); etudiant *ajouter(etudiant * , int); etudiant *modifier(etudiant *);
|
toutes les fonctions "fonctionnent" trés bien a part la foncton "
modifier"
corp de la fonction :
etudiant *modifier(etudiant *deb) { etudiant *nouveau; nouveau = (etudiant*)malloc(sizeof(etudiant)); printf("Entrez le nom de l'etudiant : "); scanf("%s",nouveau->nom); printf("Entrez le prenom de l'etudiant : "); scanf("%s",nouveau->prenom); printf("Entrez le numero d'etudiant : "); scanf("%d",&(nouveau->numero)); printf("Entrez la note du pemier partiel : "); scanf("%f",&(nouveau->note1)); printf("Entre la note du second partiel : "); scanf("%f",&(nouveau->note2)); deb=nouveau; }
|
et dans le programme principal:
printf(" entrer nom de l'etudiant a modifier : "); scanf("%s",nom); tmp=debut; while(tmp!=NULL) { if(strcmp(tmp->nom,nom)==0) { tmp=modifier(tmp); } else { tmp=tmp->suiv; } }
|
le problem :
une fois qu'il a trouver l'etudiant à modifier
je peut le modifier,mais il me renvoi une erreur une fois que c'est fait."voir image"