早教吧 育儿知识 作业答案 考试题库 百科 知识分享

两个一元多项式相加,为什么0+0时输出的结果是空白,哪位大虾帮忙看一下,小弟急求,在线等Polytype*polyadd(Polytype*ha,Polytype*hb){/*多项式相加*/Polytype*hc=malloc(sizeof(Polytype)),*pc=hc,*pa=ha->next,*pb=hb-

题目详情
两个一元多项式相加,为什么0+0时输出的结果是空白,哪位大虾帮忙看一下,小弟急求,在线等
Polytype *polyadd(Polytype *ha,Polytype *hb){/*多项式相加*/
Polytype *hc=malloc(sizeof(Polytype)),*pc=hc,*pa=ha->next,*pb=hb->next;
int e,c; /*c 为系数,e为指数*/
while(pa || pb){
if(pa&&(pb==NULL||(pa->ee))){
c=pa->c; e=pa->e;
pa=pa->next;
}
else if(pb&&(pa==NULL||(pa->e>pb->e))){
c=pb->c; e=pb->e;
pb=pb->next;
}
else{
c=pa->c+pb->c;
e=pa->e;
pa=pa->next;
pb=pb->next;
}
if(c){
pc->next=malloc(sizeof(Polytype));
pc=pc->next;
pc->c=c;
pc->e=e;
}
}
pc->next=NULL;
return hc;
}
▼优质解答
答案和解析
虽然不知道你这个Polytype类内部的定义是怎样的,但是如果说两个都是0,相加不输出结果的话,问题应该是出在 while(pa || pb)这一行,当两个多项式均是0多项式时,pa和pb都是false,这样一来,while循环里的东西全部不能执行.只剩下
pc->next=NULL;
return hc;
这两行,结果自然是没有输出.
想要有输出的话,你需要在while循环外多设计一个处理零多形式的过程.
看了 两个一元多项式相加,为什么0...的网友还看了以下: