希望帮忙解决一下
#include<stdio.h>#include<stdlib.h>
# define LEN sizeof(struct Num)
struct Num
{
float a;
struct Num * b;
};
struct Num * input (void)
{
int n;
struct Num * head,* p1,*p2;
head=NULL;
n=0;
p1=p2=(struct Num *)malloc(LEN);
scanf("%f",&p1->a);
while(p1->a!=0)
{
n=n+1;
if(n==1) head=p1;
else p2->b=p1;
p1=p2;
p1=(struct Num *)malloc(LEN);
scanf("%f",&p1->a);
}
p2->b=NULL;
return(head);
}
int main()
{
struct Num *q;
q=input();
printf("%f\n",q->a);
q=q->b;
printf("%f\n",q->a);
system("pause");
return 0;
}
向程序中输入两个以上的数时,只能输出第一个数,而后程序终止运行,似乎是红色部分无法运行,但具体不知道哪里出问题了,希望帮忙解决一下