发布时间 : 星期日 文章数据结构课程设计报告一元多项式计算更新完毕开始阅读529efe641ed9ad51f01df2ae
printf(\请输入多项式hb的系数与指数:\\n\hb=create();
gotoTextPos(2,17); print(hb);
gotoTextPos(2,18); printf(\
gotoTextPos(2,18);
printf(\多项式的和是:\\n\polyadd(ha,hb); gotoTextPos(2,19); print(ha);
gotoTextPos(2,19); printf(\
gotoTextPos(2,20);
printf(\请输入多项式hc的系数与指数:\\n\hc=create();
gotoTextPos(2,27); print(hc);
gotoTextPos(2,27); printf(\
gotoTextPos(2,28);
printf(\请输入多项式hd的系数与指数:\\n\hd=create();
gotoTextPos(2,35); print(hd);
gotoTextPos(2,35); printf(\
gotoTextPos(2,36);
printf(\多项式的差是:\\n\polycha(hc,hd); gotoTextPos(2,37); print(hc);
gotoTextPos(2,38); printf(\getch(); menu(); }
4.4 算法
void polyadd(node *ha, node *hb)//一元多项式相加函数,用于将两个多项式相加,然后将和多项式存放在多项式ha中,并将多项式hb删除
8
{
node *p,*q,*pre,*temp; int sum; p=ha->next; q=hb->next; pre=ha;
while(p!=NULL&&q!=NULL) {
if(p->exp
pre->next=p; pre=pre->next; p=p->next; }
else if(p->exp==q->exp) {
sum=p->coef+q->coef; if(sum!=0) {
p->coef=sum;
pre->next=p;pre=pre->next;p=p->next; temp=q;q=q->next;free(temp); }
else //如果系数和为零,则删除结点p与q,并将指针指向下一个结点 {
temp=p->next;free(p);p=temp; temp=q->next;free(q);q=temp; } } else {
pre->next=q; pre=pre->next; q=q->next; } }
if(p!=NULL) //将多项式A中剩余的结点加入到和多项式中 pre->next=p; else
pre->next=q; }
4.5主函数
int main()
9
{
system(\
setConsoleTitle(\一元多项式计算 by余海刚\ system(\ menu();
kuanjia1();
gotoTextPos(10,7); printf(\拜\ delayMS(600);
gotoTextPos(19,7); printf(\拜\ delayMS(600);
gotoTextPos(20,9); printf(\ delayMS(600);
gotoTextPos(21,9); printf(\ delayMS(600);
gotoTextPos(24,9); printf(\余\ delayMS(600);
gotoTextPos(26,9); printf(\海\ delayMS(600);
gotoTextPos(28,9); printf(\刚\ delayMS(600);
return 0;
10
5、 测试结果
5.1输入界面图
图5.1
11