运行出错..
本帖最后由 auyhin丶 于 2017-1-2 11:31 编辑#include<stdio.h>
struct student
{
int name;
float score;
struct student *next;
}*p1,*p2,*head;
main()
{
int n;
head=NULL;
n=0;
while(1)
{ printf("input :");
gets(p1->name);
gets(p1->score);
if(p1->name!=0)
{
n=n+1;
if(n==1)
{
head=p1;
}
else
{
p2->next=p1;
}
p2=p1;
}
else
{
p1->next=NULL;break;
}
}
do
{
printf("%d %f",head->name,head->score);
head=head->next;
}while(head);
}
改好了。但是却运行出现了错误{:10_247:}
为什么。。 本帖最后由 auyhin丶 于 2017-1-2 11:31 编辑
应该怎么改.. 本帖最后由 lzgw 于 2017-1-3 11:52 编辑
首先 p1要分配空间
p1 = (struct student*)malloc(sizeof(struct student));
然后
if(p1->name!=0)
{
n=n+1;
if(n==1)
{
head= p1; p1->next = NULL; //头指针指向p1,p1 尾指针指向空;
}
else
{
p2->next = p1;p1->next = NULL; // p2指向新分配的p1,p1尾指针指向空;
}
p2=p1;
} gets(p1->name);
gets(p1->score);
你这个应该也会出错,要么用scanf();要么用atoi和atof进行转换。
页:
[1]