![一元多项式加减法[1].doc_第1页](http://file.renrendoc.com/FileRoot1/2020-1/10/82e8bf37-eb33-4289-81b9-075b9e7cec64/82e8bf37-eb33-4289-81b9-075b9e7cec641.gif)
![一元多项式加减法[1].doc_第2页](http://file.renrendoc.com/FileRoot1/2020-1/10/82e8bf37-eb33-4289-81b9-075b9e7cec64/82e8bf37-eb33-4289-81b9-075b9e7cec642.gif)
![一元多项式加减法[1].doc_第3页](http://file.renrendoc.com/FileRoot1/2020-1/10/82e8bf37-eb33-4289-81b9-075b9e7cec64/82e8bf37-eb33-4289-81b9-075b9e7cec643.gif)
![一元多项式加减法[1].doc_第4页](http://file.renrendoc.com/FileRoot1/2020-1/10/82e8bf37-eb33-4289-81b9-075b9e7cec64/82e8bf37-eb33-4289-81b9-075b9e7cec644.gif)
![一元多项式加减法[1].doc_第5页](http://file.renrendoc.com/FileRoot1/2020-1/10/82e8bf37-eb33-4289-81b9-075b9e7cec64/82e8bf37-eb33-4289-81b9-075b9e7cec645.gif)
已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include typedef struct node/定义节点类型 float coef; int expn; struct node * next; PLOY; void start()/用户选择界面 printf(*n); printf( 两个一元多项式的相加/相减,相乘:n); printf(*n); printf(请选择操作:n); printf(0.退出n); printf(1.两个一元多项式相加n); printf(2.两个一元多项式相乘n); printf(3.两个一元多项式相减n); void insert(PLOY *head,PLOY *inpt)/查找位置插入新链节程序 PLOY *pre,*now; int signal=0; pre=head;/pre定义为现在的前一个链节 if(pre-next=NULL) pre-next=inpt; else now=pre-next; while(signal=0) if(inpt-expnexpn)/当新链节小于现在的连接时向后移一个链节 if(now-next=NULL) now-next=inpt; signal=1; else pre=now; now=pre-next; else if(inpt-expnnow-expn)/如果发现比现在的链节大了就插入到这个连接的前面 inpt-next=now; pre-next=inpt; signal=1; else now-coef=now-coef+inpt-coef; signal=1; free(inpt);/与当前链节相等指数 if(now-coef=0) pre-next=now-next; free(now); PLOY *creat(char ch)/输入多项式 PLOY *head,*inpt; float x; int y; head=(PLOY *)malloc(sizeof(PLOY);/创建链表头 head-next=NULL; printf(请输入一元多项式%c:(格式是:系数 指数;以0 0 结束!)n,ch); scanf(%f %d,&x,&y); while(x!=0) inpt=(PLOY *)malloc(sizeof(PLOY);/创建新链节 inpt-coef=x; inpt-expn=y; inpt-next=NULL; insert(head,inpt);/不然就查找位置并且插入新链节 printf(请输入一元多项式%c的下一项:(以0 0 结束!)n,ch); scanf(%f %d,&x,&y); return head; PLOY *addPLOY(PLOY *head,PLOY *pre)/多项式相加 PLOY *inpt; int flag=0; while(flag=0) if(pre-next=NULL) flag=1;/当现在指向空时跳出循环 else pre=pre-next; inpt=(PLOY *)malloc(sizeof(PLOY);/创建新链节 inpt-coef=pre-coef; inpt-expn=pre-expn; inpt-next=NULL; insert(head,inpt); /否则把当前g(x)的链节插入到y(x)中 return head; PLOY *minusPLOY(PLOY *head,PLOY *pre)/多项式相加 PLOY *inpt; int flag=0; while(flag=0) if(pre-next=NULL) flag=1;/当现在指向空时跳出循环 else pre=pre-next; inpt=(PLOY *)malloc(sizeof(PLOY);/创建新链节 inpt-coef=0-pre-coef; inpt-expn=pre-expn; inpt-next=NULL; insert(head,inpt); /否则把当前g(x)的链节插入到y(x)中 return head; PLOY *byPLOY(PLOY *head1,PLOY *head2)/多项式相乘 PLOY *inpt,*res,*pre; int flag=0; res=(PLOY *)malloc(sizeof(PLOY);/创建链表头 res-next=NULL; head1=head1-next; pre=head2; while(flag=0) if(pre-next=NULL) pre=head2;/当现在指向空时跳出循环 head1=head1-next; continue; if(head1=NULL) flag=1;/当现在指向空时跳出循环 continue; pre=pre-next; inpt=(PLOY *)malloc(sizeof(PLOY);/创建新链节 inpt-coef=pre-coef*head1-coef; inpt-expn=pre-expn+head1-expn; inpt-next=NULL; insert(res,inpt);/把当前g(x)的链节插入到y(x)中 return res; void print(PLOY *fun)/输出多项式 PLOY *printing; int flag=0; printing=fun-next;/正在被打印的链节 if(fun-next=NULL)/如果函数为空打印0 printf(0n); return; while(flag=0) if(printing-coef0&fun-next!=printing) printf(+);/为正数时打印+号 if(printing-coef=1);/如果为1就不用打印系数了 else if(printing-coef=-1) printf(-);/如果为-1就打印-号就行了 else printf(%f,printing-coef);/其余情况都得打印 if(printing-expn!=0) printf(x%d,printing-expn);/如果指数为0不打印指数项 else if(printing-coef=1)|(printing-coef=-1) printf(1); if(printing-next=NULL) flag=1;/如果现在的链节没有下一个就结束 else printing=printing-next; printf(n); void main() PLOY *f,*g; int sign=-1;/设置标志 start(); while(sign!=0) scanf(%d,&sign); switch(sign) case 0: break;/退出 case 1: printf(你选择的操作是多项式相加:n); f=creat(f);/输入多项式f(x) printf(f(x)=); print(f); g=creat(g);/输入多项式g(x) printf(g(x)=); print(g); printf(F(x)=f(x)+g(x)=); f=addPLOY(f,g);/两个多项式相加 print(f); sign=-1;/复位标志 start();/回复用户选择界面 break; case 2: printf(你选择的操作是多项式相乘:n); f=creat(f);/输入多项式f(x) printf(f(x)=); print(f); g=creat(g);/输入多项式g(x) printf(g(x)=); print(g); printf(F(x)=f(x)*g(x)=); f=byPLOY(f,g);/两个多项式相加 print(f); sign=-1;/复位标志 start();/回复用户选择界面 break; case 3: printf(你选择的操作是多项式相减:n); f=creat(f);/输入多项式f(x) printf(f(x)=); print(f); g=creat(g);/输入多项式g(x) printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年药品研发合同授权委托书模板
- 2025版智慧社区建设场与客户双重认可服务协议
- 2025搬家货运合同明确贵重物品赔偿条款
- 二零二五年文化娱乐产业版权授权合同
- 二零二五年度房产买卖:房地产项目代理合同
- 二零二五版大学生活动中心节能减排改造项目合同
- 二零二五年度酒店客房客房服务外包及增值服务协议
- 二零二五年度建筑抗震加固工程施工合同书
- 2025至2030年中国装配式建筑产业园区行业全景评估及投资规划建议报告
- 二零二五年地下车库设备维修保养服务合同
- 学校食堂食品添加剂的使用与管理制度
- 摩托车维修管理制度
- 三农扶贫工作手册 (符合要求)
- 螃蟹销售合同范本
- 电解质分析仪徐文鑫课件
- 2025年新辅警招聘考试题题库及参考答案
- 《膝关节体格检查》课件
- 2023泛血管疾病危险因素的管理
- 2024CSCO免疫检查点抑制剂相关的毒性管理指南
- 净菜加工行业标准化实施方案
- 2025年上半年内蒙古检察系统招聘用制书记员1428人过渡易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论