| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 758 人关注过本帖
标题:[讨论]多项式相加的问题
只看楼主 加入收藏
等待
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2005-12-1
结帖率:100%
收藏
 问题点数:0 回复次数:6 
[讨论]多项式相加的问题

程序如:
/*此为多项式相加的程序*/

#include<stdio.h>
#include<dos.h>
typedef struct node
{float xs;
int zs;
struct node *next;
}node; /*类型定义*/
int N=sizeof(node);
node * creat() /*定义多项式生成函数*/
{node *p,*h,*ph;
p=(node *)malloc(N); /*开辟头节点*/
sleep(5);
scanf("%f,%d",&p->xs,&p->zs);
ph=h=p;
while(ph->xs!=0)
{p=(node *)malloc(N);
scanf("%f,%d",&p->xs,&p->zs);
ph->next=p;
ph=ph->next;
}
ph->next=NULL;
return h;
}
node *dxsadd(node *s1,node *s2) /*定义多项式相加函数*/
{ node *p=(node *)malloc(N),*p1=p;
while(s1->xs&&s2->xs)
if ( s1->zs>s2->zs)
{ p1->next=s1;
s1=s1->next;
}
else if ( s1->next<s2->next)
{ p1->next=s2;
s2=s2->next;
}
else if ((s1->xs+s2->xs)==0)
{ s1=s1->next;
s2=s2->next;
}
else {s1->xs=s1->xs+s2->xs;
p1->next=s1;
s1=s1->next;
s2=s2->next;
}
if ( s1->xs)
{ p1->next=s1;
}
if ( s2->next)
{ p1->next=s2;
}
return p;
}

void print(node *p) /*定义输出函数*/
{while ( p->xs)
{ printf("%.2f %d ",p->xs,p->zs);
}
printf("\n\n");
}

main()
{node *s1,*s2,*p;
printf("please input s1:\n");
s1=creat();
printf("please input s2:\n");
s2=creat();
p=dxsadd(s1,s2);
printf("the added : ");
print(p->next);
}


为什么运行时出现 :please input s1:
scanf:floating point formats not linked
Abnormal program termination
?

[此贴子已经被作者于2006-3-28 21:13:27编辑过]

搜索更多相关主题的帖子: 多项式 相加 
2006-03-28 21:09
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
node * creat() /*定义多项式生成函数*/
{node *p,*h,*ph;
p=(node *)malloc(N); /*开辟头节点*/
sleep(5);
scanf("%f,%d",&p->xs,&p->zs);
ph=h=p;
while(ph->xs!=0)
{p=(node *)malloc(N);
scanf("%f,%d",&p->xs,&p->zs);
ph->next=p;
ph=ph->next;
}
ph->next=NULL;
return h;
}
该函数中红颜色标记的是多余的,属于画蛇添足,因为p->zs已经代表的是地址了所以&不用在写了。

♂ 死后定当长眠,生前何须久睡。♀
2006-03-28 21:52
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用303770957在2006-3-28 21:52:00的发言:
node * creat() /*定义多项式生成函数*/
{node *p,*h,*ph;
p=(node *)malloc(N); /*开辟头节点*/
sleep(5);
scanf("%f,%d",&p->xs,&p->zs);
ph=h=p;
while(ph->xs!=0)
{p=(node *)malloc(N);
scanf("%f,%d",&p->xs,&p->zs);
ph->next=p;
ph=ph->next;
}
ph->next=NULL;
return h;
}
该函数中红颜色标记的是多余的,属于画蛇添足,因为p->zs已经代表的是地址了所以&不用在写了。

你喝酒了吧,楼主的程序我还没看,不过如果是连接浮点库的问题

那么在main() 函数中 开头加两句程序就可以了 float c,*p;p=&c; 就可以了


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-28 21:55
luo113927
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-3-15
收藏
得分:0 
哈哈,和我的错误一样

不过我的解决了
2006-03-28 22:14
等待
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2005-12-1
收藏
得分:0 
请问为什么会出现浮点库连接问题?

2006-03-29 21:36
风中枫叶
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-6-24
收藏
得分:0 

解决了也不分享一下?


男子汉,大丈夫,就应该找个女的温柔温柔!^_^ 有时间来这里看看: http://blog./user1/104/
2006-06-25 19:03
快速回复:[讨论]多项式相加的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025044 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved