



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#includestruct chain/定义一个多项式的结构体int n;/该多项式的最高次数double *an;/存放多项式的系数;void creat_chain(struct chain *c)/建立一个多项式int i,n;double ai;printf(请输入该多项式最高次数:);scanf(%d,&n);(*c).n = n;(*c).an = (double *)calloc(n+1,sizeof(double);/给该多项式系数动态分配内存printf(按下列格式输入系数:(例如x4 + 2x3 - 7x1 + 5 输入:1 2 0 -7 5)n);printf(等待输入:);for(i=n;i=0;i-)scanf(%lf,&ai);(*c).ani = ai;void show(struct chain c)/按照多项式的格式显示多项式int i=c.n;printf(多项式是:);while(i=0)if(i!=c.n)&(c.ani=0)printf( + );switch(i)case 1:printf(%.2lfX,c.ani);break;case 0:printf(%.2lf,c.ani);break;default:printf(%.2lfX%d,c.ani,i);break;i-;printf(n);void do_add(struct chain *ch,struct chain ch1,struct chain ch2)/两个多项式求和int i;if(ch1.n=ch2.n)(*ch).n = ch1.n;/求和之后多项式的最高次应是ch1和ch2中较高的次数(*ch).an = (double *)calloc(*ch).n+1,sizeof(double);for(i=0;i=(*ch).n;i+)if(i=ch2.n)(*ch).ani = ch1.ani + ch2.ani;/相同次数的系数相加else(*ch).ani = ch1.ani;/直接保ch1中有而ch2中没有的项的系数else/与上面if相反(*ch).n = ch2.n;(*ch).an = (double *)calloc(*ch).n+1,sizeof(double);for(i=0;i=(*ch).n;i+)if(i=ch1.n)(*ch).ani = ch1.ani + ch2.ani;else(*ch).ani = ch2.ani;void check_change(struct chain *r)/检验多项式r的最高次数并进行相应的修改int i = (*r).n;while(fabs(*r).ani)=0)/依次从高次项向低次项进行系数检验i-;(*r).n = i;/注意:如果多项式r为0,这里i=-1bool check_zero(struct chain r)/检验多项式r的最高次数int i;for(i=0;i=1e-6)/如果一旦有一个不为零,返回falsereturn false;return true;/全为零的情况下返回truevoid do_div(struct chain ch1,struct chain ch2)/辗转相除法,公式:ch1 = q*ch2+r;int i = 0,j;double tmp;struct chain q,r;if(check_zero(ch2)/判断所除的多项式是否为0,若为0,退出;printf(所除的多项式不能为0!n);exit(0);q.n = ch1.n - ch2.n;/q的最高次数为ch1和ch2最高次数相减r.n = ch1.n - 1;r.an = (double *)calloc(r.n+1,sizeof(double);/为系数动态分配内存q.an = (double *)calloc(q.n+1,sizeof(double);while(i=0;j-)if(j=q.n-i)r.anj = ch1.anj - tmp*ch2.anj-q.n+i;/高次对应相减elser.anj = ch1.anj;/低次保留if(check_zero(r)break;/若余式r系数全为零,退出循环ch1 = r;/ch2没除干净,将r赋给ch1,继续除ch2i+;printf(-n);printf(q(x):);show(q);/显示每一步的多项式qprintf(r(x):);show(r);/显示每一步与q对应的多项式rprintf(-n);check_change(&r);/修改余式r的最高次数,即修改r.nif(r.n=-1)/r.n=-1时,说明最大公因式已经找到printf(所求最大公因式的);show(ch2);/输出结果free(r.an);/回收动态分配内存elsedo_div(ch2,r);/辗转相除void main()struct chain ch1,ch2,ch;printf(*建立第一个多项式*nn);creat_chain(&ch1);show(ch1);printf(*建立第二个多项式*nn);creat_chain(&ch2);show(ch2);printf(*以上两个多项式求和*nn);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西数字文化产业有限公司诚聘数字文旅部行政实习生1人考前自测高频考点模拟试题及答案详解(典优)
- 2025广东广州工程技术职业学院招聘一般岗位7人(第一批)考前自测高频考点模拟试题有完整答案详解
- 2025湖南湘潭市韶山思政教育实践中心招聘教师2人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025河南南阳市社旗县医疗健康服务集团招聘250人考前自测高频考点模拟试题及一套参考答案详解
- 2025广东深圳市宝安区陶园中英文实验学校招聘初中英语教师2人模拟试卷附答案详解(黄金题型)
- 2025湖州新伦供电服务有限公司招聘45人模拟试卷及答案详解1套
- 大学讲座课件
- 2025江西吉安市泊士停车管理有限公司万安分公司派遣人员招聘1人模拟试卷及答案详解(全优)
- 大学看课件教学课件
- 2025中心医院输血输液加温技术考核
- 项目经理年中会议汇报
- 小学生美容知识培训内容课件
- 2024年北控水务集团招聘笔试真题
- 2025年盘锦市总工会面向社会公开招聘工会社会工作者52人考试参考试题及答案解析
- 2025河北水发节水有限公司公开招聘工作人员16人笔试参考题库附答案解析
- 2025年秋人教版数学四年级上学期第一次月考测试卷【附答案】
- 新版中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840-1919)-2025年版
- 夜间红外成像算法优化-洞察及研究
- 2025年全国高校辅导员素质能力大赛基础知识测试卷及答案(共五套)
- 酒类酿造产品品质追溯体系建设方案
- 电焊车间卫生管理办法
评论
0/150
提交评论