السلام عليكم و رحمة الله و بركاته
عندي البرنامج التالي عباره عن création liste نقرأ فيها مدخلات n élèves ثم يمكنك من اضافة تلميذ جديد اما في اول اللقائمة او اخرها البرنامج يشتغل لكن ما يقرا المدخلات ما تنحفظ فيه مش لاقيه وين المشكل
#include<stdio.h>
#include<stdlib.h>
typedef struct Eleves
{
char *num;
char *nom;
char *prenom;
struct Eleves*suivant;
}E;
E*tete=NULL;
//Fonction Lecture:
E *Lecture(E*tete,char *N,char *Nom,char *Prenom)
{
printf("\nDonner le numero d'inscription:\t");
scanf("%s",&N);
printf("\nDonner le nom de l'eleve:\t");
scanf("%s",&Nom);
printf("\nDonner le prenom de l'eleve:\t");
scanf("%s",&Prenom);
return tete;
}
//Fonction Création liste de n élèves:
E*Creer(int n,E*tete,char *N,char *Nom,char *Prenom)
{
E*courant=tete;
while(n>0)
{
tete=(E*)malloc(sizeof(E));
Lecture(tete,N,Nom,Prenom);
tete->num=N;
tete->nom=Nom;
tete->prenom=Prenom;
tete->suivant=courant;
courant=tete;
n--;
}
return tete;
}
//Fonction Ajout en tête:
E*Ajout_tete(E*tete,char *N,char *Nom,char *Prenom)
{
E*nouveau;
nouveau=(E*)malloc(sizeof(E));
nouveau->num=N;
nouveau->nom=Nom;
nouveau->prenom=Prenom;
nouveau->suivant=tete;
tete=nouveau;
return tete;
}
//Fonction Ajout à la fin:
E*Ajout_fin(E*tete,char *N,char *Nom,char *Prenom)
{
E *nouveau;
nouveau=(E*)malloc(sizeof(E));
nouveau->num=N;
nouveau->nom=Nom;
nouveau->prenom=Prenom;
nouveau->suivant=NULL;
if(tete==NULL)
{
tete=nouveau;
}else{
E*courant=tete;
while(courant->suivant!=NULL)
{
courant=courant->suivant;
}
courant->suivant=nouveau;
}
return tete;
}
//Fonction d'affichage:
void Affichage(E*tete)
{
E*courant=tete;
while(courant!=NULL)
{
printf("\neleve = %s %s %s",courant->num,courant->nom,courant->prenom);
courant=courant->suivant;
}
}
main()
{
//Déclarations:
int n,i,R;
E*tete=NULL;
char N[10],Nom[30],Prenom[30];
//Début:
do
{
printf("Donner le nombre d'eleves:\t");
scanf("%d",&n);
}while(n<=0);
Creer(n,tete,N,Nom,Prenom);
Affichage(tete);
do
{
printf("\nVoulez vous ajouter l'eleve au debut de la liste ou a la fin? 0/1\t");
scanf("%d",&R);
}while(R!=0 && R!=1);
if(R==0)
{
Lecture(tete,N,Nom,Prenom);
tete=Ajout_tete(tete,N,Nom,Prenom);
Affichage(tete);
}else{
Lecture(tete,N,Nom,Prenom);
tete=Ajout_fin(tete,N,Nom,Prenom);
Affichage(tete);
}
return 0;
system("pause");
}