| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1218 人关注过本帖
标题:吖[求助]多项式相加出现死循环
只看楼主 加入收藏
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
比如(5x^5+4x^4+…+1)+(4x^3+5x+8)=?这样吗?
我说的是具体要求,最好给个例子说明好些。
这样不明不白的,

对不礼貌的女生收钱......
2006-05-05 11:13
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 
一元多项式的相加:
Pn(X)=P0+P1X+P2X^2+....+PnX^n

你的过去不是你的潜力,伟大的成就是干出来的,而不是想出来的!
2006-05-05 11:41
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

做这题需要初中数学知识和结构体链表知识就够了


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-05 11:45
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 
就是对结构体链表知识不熟悉出现问题了啥/
才要大家来帮我了/

你的过去不是你的潜力,伟大的成就是干出来的,而不是想出来的!
2006-05-05 12:43
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

/*
耐着性子,把LZ的程序"缩格排列"了。
楼主关注我拼命打//////的地方
*/
#include<stdio.h>
#define NULL 0

typedef struct LNode
{
int coef;
int expn;
struct LNode *next;
} term;

typedef struct
{
term *head,*tail;
int len;
} LinkList;

void InitTerm(term *P)
{
P->next=NULL;
}

void InitList(LinkList *L)
{
L->head=L->tail=NULL;
L->len=0;
}

void CreatPolyn(term *P,LinkList *L,int m)
{
term *S,*T;int i;
InitList(L);InitTerm(P);
T=L->head=P;
T->coef=0;
T->expn=-1;
for(i=1; i<=m; ++i)
{
S=(term *)malloc(sizeof(term));
InitTerm(S);
scanf("%d %d",&S->coef,&S->expn);
T->next=S;
free(S); ////////////////////////
T=T->next;
}
L->tail=T;
L->len=m;
}

void AddPolyn(term *Pa,LinkList *La,term *Pb,LinkList *Lb)
{
term *ha,*hb,*qa,*qb;
int n;
float sum;
ha=La->head;
hb=Lb->head;
qa=Pa->next;qb=Pb->next;
while (qa && qb)
{
if(qa->expn>qb->expn)n=1;
else if(qa->expn<qb->expn)n=-1;
else n=0;
switch(n)
{
case -1: ha=qa;qa=qa->next;break;
case 0: sum=qa->coef+qb->coef;
if(sum!=0.0)
{ qa->coef=sum;
ha=qa;qa=qa->next;
hb=qb;qb=qb->next;
}
else
{ ha->next=qa=qa->next;
hb->next=qb=qb->next;
}
break;
case 1: hb=qb;
qb=qb->next;
ha->next=hb;
qb->next=qa;
hb=qb;
qb=qb->next;
break;
}
}
if(!Pb->next)La->tail=Pb->next;
free(Pb);
}

void PrintPolyn(term *P)
{
term *h;
h=P->next;
while(h!=NULL)
{
printf("Y=");
printf("%dx(%d)+",h->coef,h->expn);
h=h->next;
}
printf("\b \n");
}

void main()
{
term *Pa,*Pb;
LinkList *La,*Lb;
int n;
Pa=(term *)malloc(sizeof(term));
Pb=(term *)malloc(sizeof(term));
La=(LinkList *)malloc(sizeof(LinkList));
Lb=(LinkList *)malloc(sizeof(LinkList));
puts("Now,Creat the first polynomail:");
puts("\nplease input the numbers of the first polynomail: ");
scanf("%d",&n);
puts("\nPlease input coef and expn each term with order from small to large by expn:\n");
CreatPolyn(Pa,La,n);
puts("the first polynomail is:\n");
PrintPolyn(Pa);
puts("Now,Creat the second polynamail:\n");
puts("please input the numbers of the second polynamail:\n");
scanf("%d",&n);
puts("\nPlease input coef and expn each term with order from small to large yb expn:\n");
CreatPolyn(Pb,Lb,n);
puts("the second polynomail is:\n"); PrintPolyn(Pb);
AddPolyn(Pa,La,Pb,Lb);
puts("the result is:\n");
PrintPolyn(Pa);
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-05 13:15
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:LZ的程序"缩格排列"了。...
刚申请来的结点内存,马上就free( )了,谁教你这么做的

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-05 13:18
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
呵呵,厉害,我链表学得很差很差,
那个金币的事情你让他给,别来找我哦,嘿嘿

对不礼貌的女生收钱......
2006-05-05 13:23
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
以下是引用soft_wind在2006-5-5 13:23:00的发言:
呵呵,厉害,我链表学得很差很差,
那个金币的事情你让他给,别来找我哦,嘿嘿

我倒忘记金币了,再说这位仁兄,前脚malloc给了我,后脚又让我free给他,咋办?哈哈


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-05 13:29
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 
for(i=1;i<=m;++i)
{
S=(term *)malloc(sizeof(term));
InitTerm(S);
scanf("%d %d",&S->coef,&S->expn);
T->next=S;
free(S); (我那个时候的意思是:先分配一个空间给变量S,赋值以后裢到裢表T中,                 
T=T->next;  释放掉S的空间.然后再重新分配一个空间给变量S,再赋值,再裢...)
}

你的过去不是你的潜力,伟大的成就是干出来的,而不是想出来的!
2006-05-05 20:20
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 

还有一个问题:如果系数是浮点数又出问题了/
 出错的信息是:scanf:floating point formats not linked
Abnormal progrom termination
在这上面怎么弄图片上去啊!!


你的过去不是你的潜力,伟大的成就是干出来的,而不是想出来的!
2006-05-05 21:22
快速回复:吖[求助]多项式相加出现死循环
数据加载中...
 
   



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

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