早教吧作业答案频道 -->其他-->
用两个动态数组表示两个一元稀疏多项式问题描述:设用两个动态数组表示两个一元稀疏多项式A、B,数组的每个元素由两部分组成:系数部分(为实数)和指数部分(为整数),实现两
题目详情
用两个动态数组表示两个一元稀疏多项式问题描述: 设用两个 动态数组 表示两个一元稀疏多项式A、B,数组的每个元素由两部分组成:系数部分(为实数)和指数部分(为整数),实现两个一元稀疏多项式的处理。 实现要求: ⑴ 输入并建立多项式,输入的顺序任意; ⑵ 对多项式按指数升序进行排序; ⑶ 输出多项式,输出时每项的形式是:ax^b,其中a为系数,x为统一的变元,b为指数; ⑷ 多项式A和B相加,建立多项式A+B,输出相加的多项式 ⑸ 多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑹ 多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑺ 设计一个菜单,上述操作要求都作为菜单中的主要菜单项。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3) (x+x2+x3)+0 (4) (x+x3)-(-x-x-3)
▼优质解答
答案和解析
#include #include #include #include using namespace std; typedef struct Polynode { float coef; //系数 int exp; //指数 }*Poly,Polynode; //Poly为指针类型 int n,m;//全局变量 void Sort(Poly &p,int l)//按指数的升序排序 { int i,j,small; Polynode temp; for(i=0;ia[i].exp; } cout>b[i].exp; } Sort(a,n); Sort(b,m); } void OutputList(Poly a,int l)//输出多项式 { int flag=1,i,k=0;//项数计数器 if(l==0) //若多项式为空,输出0 { printf("0\n"); } for(i=0;i0&&flag!=1) //系数大于0且不是第一项 printf("+"); if(a[i].coef!=1&&a[i].coef!=-1)//系数非1或-1的普通情况,-+1要特别处理 { cout
看了 用两个动态数组表示两个一元稀...的网友还看了以下:
如何求一个数的整数部分有一列数,第一个数是80,第二个数是60,从第三个数开始每个数都是前两个数的 2020-06-14 …
1.一列数,第一个是133,第二个是57,从第三个数开始,每个数都是它前面两个数的平均数,那么第2 2020-07-17 …
xxx.x三位整数带一个小数点正则表达式怎么写xxx.x形式的(三位整数带一个小数点)正则表达式如 2020-07-23 …
有A、B两个小数,且它们的整数部分为0,A的小数部分有三位,B的小数部分有两位.已知A的百分位是7 2020-07-31 …
m和n是两个整数部分是0的小数,m的小数部分有三位,n的小数部分有两位,已知m的百分位是7,n的百 2020-07-31 …
m和n是两个整数部分是0的小数,m的小数部分有三位,n的小数部分有两位,已知m的百分位是7,n的百 2020-07-31 …
一个三位小数,有以下特点:(1)最大的两位整数比该数的整数部分的2倍多19;(2)十分位上的数比百 2020-07-31 …
请你用0、3、6、9四个数字(每个只能用一次)按要求组数。(1)整数部分最大,而小数部分的千分位是 2020-07-31 …
8、有30个数:1.64,1.64+1/30,1.64+2/30,1.64+3/30.1.64+28 2020-11-17 …
比较两个数的(),先看它们的()部分,整数部分大的那个数就()?比较两个数的(),先看它们的()部分 2020-11-20 …