关于链表的一个小问题

pa1es 2003-09-29 04:46:36
在写出建表,打印表函数
运行出现 scanf:floating point formats not linked
Abnormal program termination.

请问是何原因。

程序如下:
#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct a)
struct a
{ float xishu;
int zhishu;
struct a *next;
};
int n;
/*creat table*/
struct a *creat(void)
{struct a *head;
struct a *p1,*p2;
n=0;
p1=p2=(struct a *) malloc (LEN);
scanf("%f,%d",&p1->xishu,&p1->zhishu);
head=NULL;
while(p1->xishu!=0)
{ n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct a *) malloc (LEN);
scanf("%f,%d",&p1->xishu,&p1->zhishu);
}
p2->next=NULL;
return(head);
} /* creat table*/
/* print table*/
void print(struct a *head)
{struct a *p;
printf("\nOutput what you input.\n");
p=head;
if(head!=NULL)
do
{printf("%fx^%d",p->xishu,p->zhishu);
if (p->next!=NULL)
printf("+");
else printf("\n");
p=p->next;
}
while (p!=NULL);
}

main()
{ struct a *head_x;
head_x=creat();
print(head_x);

}
...全文
44 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
existsluawjb 2003-09-30
  • 打赏
  • 举报
回复
C程序设计(潭浩强)的书上有
021850524 2003-09-30
  • 打赏
  • 举报
回复
这是早期的编译器比如tc2.0的错误,你的语法本身没错.
你用新的编译器就行了.至少tc2.01就解决了这个错误.
wxtp 2003-09-30
  • 打赏
  • 举报
回复
程序却实没问题,可能是系统或编译器不完善引起的。
你可以这样:
float a,int b;
scanf("%f,%d",&a,&b);
p1->xishu=a;
p1->zhishu=b;
RainWindy 2003-09-29
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2263/2263654.xml?temp=.7013666
hslinux 2003-09-29
  • 打赏
  • 举报
回复
程序没错,换个编译器试试。
lionhu2003 2003-09-29
  • 打赏
  • 举报
回复
程序并没有问题,只是你输入数字时要注意
打个比方如果你创建的是10X^2+23^3;
那么要这样输入
10,2
23,3
0
doer_ljy 2003-09-29
  • 打赏
  • 举报
回复
在我这里没问题呀!
你的输入是怎么输入的?

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧