天天看點

c語言運作程式出錯,【求助】c程式運作出錯,大家進來看看!

該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓

這是一個建立有3個學生的單向動态連結清單,程式用的是譚浩強的書上的277頁的creat()函數和279頁的print()函數,運作出錯,求教高人解釋原因。

#include

#include

struct student

{long num;

float score;

struct student *next;

};

int n;

struct student *creat(void)

{

struct student *head,*p1,*p2;

n=0;

p1=p2=(struct student *)malloc(sizeof(struct student));

scanf("%ld,%f",&p1->num,&p1->score);

head=NULL;

while(p1->num!=0)

{

n++;

if(n==1)

head=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

scanf("%ld,%f",&p1->num,&p1->score);

}

p2->next=NULL;

return(head);

}

void print(struct student *head)

{

struct student *p;

printf("this %d records\n",n);

p=head;

if(head!=NULL)

do

{printf("%ld,%5.1f\n",p->num,p->score);

p=p->next;

}

while(p!=NULL);

}

main()

{

struct student *p;

p=creat();

print(p);

}