下载此文档

数据结构实验报告(一元多项式的运算).doc


文档分类:高等教育 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
实验二一元二项式的运算一. 问题描述:设Pn(x)和Qm(x)分别两个一元多项式。试编写程序实现一元多项式的加法运算。二. 需求分析:,也可以用数组实现。。+7x8+5x3+3x输入4//表示第一个多项式的项数9,15(回车)//表示9x157,8(回车)5,3(回车)3,1(回车)输出9x^15+7x^8+5x^3+3x^1//第二个多项式为-7x8+6x3+2输入3//表示第二个多项式的项数6,3(回车)//表示9x15-7,8(回车)2,0(回车)输出-7x^8+6x^3+2x^0求和结果9x^15+11x^3+3x^1+2x^:为实现上述程序的功能,应以整数存储用户的输入,以及计算的结果。实现多项式的运算,利用数组的方式需开辟一个二维数组。算法的基本思想:数组实现:定义一个结构体数组,p存储系数,q存储指数。分别输出两次输入的多项式。将两次输入的多项式的指数按从大到小的顺序进行排列,同时相应的系数要进行交换。输出时如果进行判断。如果当前该项与下一项的的系数相同,将两项系数相加后输出,并跳过下一项。如果不相等,直接输出。输出时需注意的问题:当系数为0时,该项不输出当系数为负数时,不要再在前面输出“+”。程序的流程:(1) 输入模块:完成两个多项式的输入。(2) 处理模块:将多项式按其指数大小进行排列。(3) 输出模块:输出合并后的多项式。:#include<iostream>usingnamespacestd;structcode{intp,q;}a[1000],b[1000];//结构体数组,可以用二维数组代替intmain(){inti,j,n,m,temp;while(cin>>n){for(i=0;i<n;i++)cin>>a[i].p>>a[i].q;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(a[j].q>a[i].q){temp=a[j].q;//指数排序a[j].q=a[i].q;a[i].q=temp;temp=a[j].p;//系数跟着变化a[j].p=a[i].p;a[i].p=temp;}}}//对输入的指数进行排序,相应的系数跟着变化cout<<a[0].p<<"x^"<<a[0].q;//先输出第一项for(i=1;i<n;i++){if(a[i].p>0)cout<<'+'<<a[i].p<<"x^"<<a[i].q;//完成运算符和其他项的输出,然//后类似于上面,对第二个多项式进行相应的操作。elseif(a[i].p<0)cout<<a[i].p<<"x^"<<a[i].q;}cout<<endl;cin>>m;for(i=0;i<m;i++)cin>>b[i].p>>b[i].q;for(i=0;i<m;i++){for(j=i+1;j<m;j++){if(b[j].q>b[i].q){temp=b[j].q;b[j].q=b[i].q;b[i].q=temp;temp=b[j].p;b[j].p=b[i].p;b[i].p=temp;}}}cout<<b[0].p<<"x^"<<b[0].q;for(i=1;i<m

数据结构实验报告(一元多项式的运算) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaodengyou
  • 文件大小37 KB
  • 时间2019-01-10