
请大佬帮忙看看这段建立动态链表的代码哪里出问题了(总是输入一组数据后就跳出运行了):#include<stdio.h>#include<stdlib.h>#define LEN sizeof(sd)typedef struct Student{ long num; char* name; double score; struct Student * next;}sd;sd * creat(void);int n;int main(void){ sd * pt; pt=creat(); printf("%-10s%-10s%-10s\n","num:","name:","score:"); while(pt!=NULL) { printf("%-10ld%-10s%-10.2lf\n",pt->num,pt->name,pt->score); pt=pt->next; } putchar(10); printf("Finish!\n"); return 0;}sd * creat(void){ sd *head,*p1,*p2; p1=p2=(sd*)malloc(LEN); head=NULL; printf("请输入学生的学号、姓名和成绩:(以学号为零结束输入)\n"); scanf("%ld %s %lf",&p1->num,p1->name,&p1->score); n=0; while(p1->num!=0) { n+=1; if(n==1)head=p1; else p2->next=p1; p2=p1; p1=(sd*)malloc(LEN); scanf("%ld %s %lf",&p1->num,p1->name,&p1->score); } p2->next=NULL; return(head);}