ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:249.64KB ,
资源ID:20189769      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20189769.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一元多项式的加法乘法运算的实现Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

一元多项式的加法乘法运算的实现Word格式文档下载.docx

1、string.h#define NULL 0typedef struct Node /定义结构体类型 float coef; /系数 int expn; /指数 struct Node *next; /结构体指针Node,*Linklist;struct polynode int c; int e; struct polynode *next;struct polynode * creat(void) int c,e; struct polynode *head=NULL; struct polynode *p1,*p2,*l,*r; while(scanf(%d,%d%*c,&c,&e),c

2、|e) p2=(struct polynode *)malloc(sizeof(struct polynode); p2-c=c;e=e; p2-next=NULL; if(head=NULL) head=p2;continue; for(l=r=head;l!=NULL&(l-e)next) r=l; if(l=head&l-ee) head=p2; else r-next=p2;next=l; return head;void output(struct polynode* head) struct polynode *p1; p1=head; if(p1=NULL) printf(n m

3、ultinomial is zeron);return; printf(n while(p1!=NULL) printf(p1!=head&(p1-c)0? +%d:%d,p1-c); printf(p1-e?x%de); p1=p1-next; struct polynode * add(struct polynode *head1,struct polynode *head2) struct polynode *p1,*p2,*r,*l,*h; h=r=p1=head1; p2=head2; if(head1=NULL) h=head2;return h; while (p1!p2!=NU

4、LL) if(p1-e=p2-e) p1-c+=p2-c; p2=p2- r=p1; p1=p1- continue; if(p1-e r=p1; l=p2; if(p1=h) h=l; else r- l-next=p1; r=l; if (p1=NULL) r- return h;struct polynode * mul(struct polynode *head1,struct polynode *head2) struct polynode *p,*p1,*p2,*r,*t,*head; head=NULL; if(head1=NULL|head2=NULL) return head

5、; for(p2=head2;=NULL;p2=p2-next) for(p1=head1;p1!p1=p1- p=(struct polynode *)malloc(sizeof(struct polynode); p-c=p1-c*p2-e=p1-e+p2- if(p1=head1) t=p;next=p; r=p; head=add(head,t);/ output(head); Linklist creatpolyn(Linklist L,int n) /构造新的一元多项式 int i; Linklist head,p; head=(Linklist)malloc(sizeof(Nod

6、e); /创建头结点 head- L=head; for(i=n;i0;i-) p=(Linklist)malloc(sizeof(Node); printf(请输入一元多项式的第%d项的系数和指数:,i); scanf(%f%d(*p).coef,&(*p).expn); /输入系数和指数 p-next=L- L- return(head); /返回头结点/creatpolynint cmp(int a,int b) /比较a,b的大小 if(ab) return(1); else if(a=b) return(0); else return(-1);void print(Linklist

7、L) /显示一元多项式 Linklist p; p=L- while(p-next!=NULL)%f*x%d+,(*p).coef,(*p).expn); /输出多项式的项 p=p-%f*x%dn /输出多项式最后一项/PrintLinklist Addpolyn(Linklist pa,Linklist pb) /多项式相加 int a,b; float sum; Linklist ha,hb,qa,qb,p1,p2; ha=pa; /ha,hb分别指向pa和pb中当前结点 hb=pb; qa=ha- /qa和qb分别指向pa和pb中当前结点 qb=hb- while(qa!qb!=NULL

8、) /qa和qb均非空 a=(*qa).expn; b=(*qb).expn; switch(cmp(a,b) /比较指数 case -1: /anext=qa; ha=ha- qa=qa- break; case 0: /a=b sum=(*qa).coef+(*qb).coef; if(sum!=0.0) (*qa).coef=sum; ha- else p1=qa; free(p1); p2=qb; qb=qb- free(p2); break; case 1: /anext=qb; ha=ha- /switch /while=NULL) /如果qb不为空 ha- qa=qa- whil

9、e(qb! qb=qb- return(pa);/Addpolynvoid main() int m,n,i; char t; Linklist pa,pb;pa=(Linklist)malloc(sizeof(Node); pb=(Linklist)malloc(sizeof(Node);请输入一元多项式pa的项数: /构造一元多项式pa scanf(m); pa=creatpolyn(pa,m);请输入一元多项式pb的项数: /构造一元多项式pbn); pb=creatpolyn(pb,n);printf(多项式pa为: /输出pa print(pa);多项式pb为: /输出pb prin

10、t(pb);多项式pa与pb的和为: /输出多项式pa和pb的和 print(Addpolyn(pa,pb); struct polynode *head1=NULL,*head2=NULL,*head=NULL; logn:请输入需要相乘的多项式个数,至少2个:%d%cn 输入一个多项式的方式为:系数,指数; 例如: 3,4;5,6;7,8;as0,0;结束nn 请输入第1个多项式的系数和指数: head1=creat();n 第1个多项式的为: output(head1); for(i=1;in;i+)n 请输入第%d个多项式的系数和指数 :,i+1); head2=creat();n 第

11、%d个多项式为: output(head2); if(i=1)head=mul(head1,head2); else head=mul(head,head2); n 多项式相乘结果为 :output(head);n 是否继续(y/n)?%*c%ct); if(t=y) goto logn;七、程序运行界面图1,加法运行输入项数2,输入每一项的系数及指数 3,算出加法运算结果及乘法运行输入项数4,入乘法运算每一项的系数及指数 5,算出乘法运算的结果八、心得体会通过这次的课程设计,是我又温习了数组、循环结构以及嵌套以及分块模块等C语言知识。一元多项式是一个复杂的运算程序,但是当我设计成功后,我心花

12、怒放。在课程设计期间,最大的收获是一心一意全心投入去做一件事。能力很重要,但有时候合作带来的效果也很重要!大家在一起讨论、研究,一起解决问题,也许有时候一个程序看不懂,但大家在一起讨论,一起去解决,最终还是能够解决的。对于很多嵌套结构还不是很熟悉,以及指针的运用不是掌握的太好。所以还是需要进一步的熟悉运用。东华理工大学长江学院课程设计评分表学生姓名: 班级: 学号:课程设计题目:一元多项式的加法、乘法运算的实现项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力理论依据充分,数据准确,公式推导正确能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等能体现创造性思维,或有独特见解成果质量总体设计正确、合理,各项技术指标符合要求。说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准有一定篇幅,字符数不少于5000总 分100指导教师评语: 指导教师签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1