博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程(2019)第一次结队作业程序
阅读量:4446 次
发布时间:2019-06-07

本文共 3114 字,大约阅读时间需要 10 分钟。

#include
#include
typedef struct term{//项的表示 float coef;//系数 int expn;//指数 struct term *next,*pre;}*ElemType;void createPolyn(ElemType &polyn)//创建一个多项式链表{ polyn=(ElemType)malloc(sizeof(term)); ElemType q,p; p=polyn; polyn->next=q; polyn->pre=NULL; q->next=NULL; q->pre=polyn; for(int i=1;;i++) { q=(ElemType)malloc(sizeof(term)); printf("请输入第%d项系数和指数:",i); scanf("%f%d",&q->coef,&q->expn); p->next=q; q->pre=p; q->next=NULL; if(q->coef==0 && q->expn==0) break; p=q; }}void addPolyn(ElemType &p1,ElemType &p2)//多项式相加{ ElemType polyn1=p1->next,polyn2=p2->next; while(polyn1->next&&polyn2->next) { if(polyn2->expn > polyn1->expn) polyn1=polyn1->next; else if(polyn2->expn == polyn1->expn) { polyn1->coef+=polyn2->coef; polyn1=polyn1->next; polyn2=polyn2->next; free(polyn2->pre); } else if(polyn2->expn < polyn1->expn) { ElemType pp=polyn2->next; polyn1->pre->next=polyn2; polyn2->next=polyn1; polyn2->pre=polyn1->pre; polyn1->pre=polyn2; polyn2=pp; } } while(polyn2->next) { polyn1->next=polyn2; polyn1=polyn1->next; polyn2=polyn2->next; }}void subPolyn(ElemType &p1,ElemType &p2){ ElemType polyn1=p1,polyn2=p2; while(polyn1->next&&polyn2->next) { if(polyn2->expn > polyn1->expn) polyn1=polyn1->next; else if(polyn2->expn == polyn1->expn) { polyn1->coef-=polyn2->coef; polyn1=polyn1->next; polyn2=polyn2->next; free(polyn2->pre); } else if(polyn2->expn < polyn1->expn) { ElemType pp=polyn2->next; polyn1->pre->next=polyn2; polyn2->next=polyn1; polyn2->pre=polyn1->pre; polyn1->pre=polyn2; polyn2=pp; } }}void printPolyn(ElemType polyn)//打印多项式{ ElemType p; p=polyn->next; for(int i=1;p->next!=NULL;i++) { if(p->coef>0 && i!=1 && p->expn!=0) printf("+%.2fx^%d",p->coef,p->expn); else if(p->coef<0 && p->expn!=0) printf("%.2fx^%d",p->coef,p->expn); else if(p->coef>0 && i==1 && p->expn!=0) printf("%.2fx^%d",p->coef,p->expn); else if(p->coef>0 && i!=1 && p->expn==0) printf("+%.2f",p->coef); else if(p->coef<0 && p->expn==0) printf("%.2f",p->coef); else if(p->coef>0 && i==1 && p->expn==0) printf("%.2f",p->coef); p=p->next; } printf("\n");}int main(){ ElemType polyn1,polyn2; printf("请输入第一个多项式\n"); createPolyn(polyn1); printPolyn(polyn1); printf("请输入第二个多项式\n"); createPolyn(polyn2); printPolyn(polyn2); printf("两个多项式相加\n"); addPolyn(polyn1,polyn2); printPolyn(polyn1); printf("两个多项式相减\n"); subPolyn(polyn1,polyn2); printPolyn(polyn1); return 0;}

  

转载于:https://www.cnblogs.com/19940630naxubo/p/10767792.html

你可能感兴趣的文章
[.NET源码学习]实例化Font,遭遇字体不存在的情况。
查看>>
手机如何设置静态IP
查看>>
JS操作文件
查看>>
解放创意——自由人的自由联合
查看>>
Django框架之路由
查看>>
GitHub & GitHub Package Registry
查看>>
HTML5 & how to download SVG in js
查看>>
Machine Learning & ML
查看>>
常用会计科目通俗解释
查看>>
给网卡配置10个临时ip地址,但是不配置192.168.17.15这个ip
查看>>
html滑动
查看>>
个人作品:EasyPicker(轻取)简洁而又实用的文件收取Web应用
查看>>
delphi中关于时间差的实例
查看>>
Android代码中动态设置图片的大小(自动缩放),位置
查看>>
secret of the javascript ninja笔记
查看>>
谈谈需求变更跟踪
查看>>
【POJ】2019 Cornfields
查看>>
.Net中直接操作内存
查看>>
jenkins发送测试报告邮件
查看>>
Redis 安全配置
查看>>