建立动态链表出错问题
马上要考试了 我很焦虑在TC环境 输入学号和成绩 学号为0终止 编译通过 第一次输入时出错 求指点
#include<stdio.h>
int n;
struct stu
{
int num;
float gra;
struct stu *next;
};
struct stu *sca(void)
{
struct stu *head,*p1,*p2;
head=p1=p2=(struct stu *)malloc(sizeof(struct stu));
printf("begin:\n");
scanf("%d%f",&head->num,&head->gra);/*输入时这里出错 说float point formats not linked*/
if(head->num)
for(n=1;p1->num;n++)
{
p1=(struct stu *)malloc(sizeof(struct stu));
p2->next=p1;
p2=p1;
printf("next:\n");
scanf("%d%f",&p1->num,&p1->gra);
}
p1->next=NULL;
return head;
}
void pri(struct stu *h)
{
int m;
struct stu *temp;
printf("number\tgrade\n");
if(h->next)
{
printf("%d\t%f\n",h->num,h->gra);
temp=h->next;
for(m=1;m<=n;m++)
{
printf("%d\t%f\n",temp->num,temp->gra);
temp=temp->next;
}
}
}
main()
{
pri(sca());
}
[ 本帖最后由 njzhangyuhao 于 2011-3-4 20:28 编辑 ]