帮我看下这个程序,不知道错哪了
用结构体建立学生信息,学生信息包括学号、姓名、成绩,建立一个有 n 名学生的链表, 并将链表输出。
一次输入学生信息包括学号、姓名。0 0 0结束程序
从链表表头到表位依次输出。
input
Sample Input
C1001 Li 70
M1002 He 89
E1003 Xie 83
M1004 Wu 92
E1005 Bao 8
Output
C1001 Li 70
M1002 He 89
E1003 Xie 83
M1004 Wu 92
E1005 Bao 80
#include<stdio.h>
#include<stdlib.h>
struct data
{
int num;
char name[20];
int score;
struct data*next;
};
int main()
{
struct data*head,*p,*q,*t;
head=t=p=q=(struct data*)malloc(sizeof(struct data));
scanf("%d",&p->num);
getchar();
gets(p->name);
scanf("%d",&p->score);
while(p->num!=0)
{
q->next=p;
q=p;
p=(struct data*)malloc(sizeof(struct data));
scanf("%d",&p->num);
getchar();
gets(p->name);
scanf("%d",&p->score);
}
q->next=NULL;
free(p);
while(t==NULL)
{ printf("%-5d%8s%8d",t->num,t->name,t->score);
t=t->next;
printf("\n");
}
return 0;
}