| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1217 人关注过本帖
标题:吖[求助]多项式相加出现死循环
只看楼主 加入收藏
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
 问题点数:0 回复次数:23 
吖[求助]多项式相加出现死循环

#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-04 23:26
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

等有极好耐心的人看吧,这个代码一乱,我就看不下去


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-04 23:31
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分: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);
}

这是哪个老师教你的,格式

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-04 23:37
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 
呵呵,不能怪老师.
是我编写时的习惯问题/以后会改的/

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

因为有梦想,所以才会有成功!
2006-05-05 10:12
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
大家来吧,挑战无极限!!!谁要看这程序不晕,俺给500金币!

对不礼貌的女生收钱......
2006-05-05 10:13
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 
不是吧,我这个程序就这有那么乱嘛,我都能看/
要不你编一个给我看看/

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

有谁能帮我改一下啊/
现在我的思路可能已经短路了,怎么看都觉得是对的/


你的过去不是你的潜力,伟大的成就是干出来的,而不是想出来的!
2006-05-05 10:50
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
俺也想帮你呀,可链表俺不会[哩em04]
具体题目啥呀?

对不礼貌的女生收钱......
2006-05-05 11:01
awindy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-4
收藏
得分:0 

就是实现两个多项式的相加/


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



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

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