السلام عليكم و رحمة الله و بركاته
اخوتي الكرام لدي الكود الاتي كلما قمت بادخال أول بيان يتوقف فجأه و لم أجد سبب المشكله أرجو المساعده
البرنامج يقوم بقراءة بيانات طالب و اضافتها اما اول القائمة او اخرها ثم يعرض القائمة، كلما يصل الكود لقراءة رقم الطالب و ادخل الرقم يتوقف
#include<stdio.h>
#include<stdlib.h>
typedef struct eleves
{
int num;
char nom[10];
char prenom[10];
struct eleves*suivant;
}E;
typedef E* liste;
//Fonction Ajout tete
liste Ajout_tete(liste p)
{
liste nouveau=(liste)malloc(sizeof(E));
printf("donner le numero:\t");
scanf("%d",&p->num);
printf("donner le nom:\t");
scanf("%s",p->nom);
printf("donner le prenom:\t");
scanf("%s",p->prenom);
nouveau->suivant=p;
p=nouveau;
return p;
}
//Fonction Ajout queu
liste Ajout_fin(liste p)
{
liste nouveau=(liste)malloc(sizeof(E));
printf("donner le numero:\t");
scanf("%d",&p->num);
printf("donner le nom:\t");
scanf("%s",p->nom);
printf("donner le prenom:\t");
scanf("%s",p->prenom);
if(p==NULL)
{
p=nouveau;
}else{
liste temp=p;
while(temp->suivant!=NULL)
{
temp=temp->suivant;
}
temp->suivant=nouveau;
}
return p;
}
//Fonction Affichage
void Affiche(liste p)
{
liste temp=p;
if(temp!=NULL)
{
printf("%d,%s\t%s",temp->num,temp->nom,temp->prenom);
Affiche(temp->suivant);
}
}
main()
{
int n,i;
liste p=NULL;
printf("Donner le nbr d'eleves:\t");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=Ajout_fin(p);
}
Affiche(p);
return 0;
system("pause");
}