动态链表问题
#include "stdio.h"#include "conio.h"
#include "stdlib.h"
struct Sk
{
int num;
char name[20];
float score;
struct Sk * next;
};
struct Sk* linklist()
{
struct Sk *h,*p1,*p2;
int n=0;
p1=p2=(struct Sk*)malloc(sizeof(struct Sk));
printf("输入学号,名字,和成绩\n");
scanf("%d %s%f",&p1->num,p1->name,&p1->score);
h=NULL;
while(p1->num!=0)
{
n++;
if(n==1)
h=p1;
else p2->next=p1;
p2=p1;
if((p1=(struct Sk*)malloc(sizeof(struct Sk)))==NULL)
{
printf("内存分配失败");
exit(1);
}
scanf("%d %s%f",&p1->num,p1->name,&p1->score);
}
p2->=NULL;
return h;
}
int print(struct Sk *p)
{
printf("学号 名字 成绩\n");
while(p!=NULL)
{
printf("%d\t%s\t%.2f\n",p->num,p->name,p->score);
p=p->next;
}
return 0;
}
int main()
{
struct Sk *head;
head=linklist();
print(head);
getch();
return 0;
}为什么输出时会报错
[[it] 本帖最后由 bianfeng 于 2008-4-21 17:05 编辑 [/it]]