早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用两个动态数组表示两个一元稀疏多项式问题描述:设用两个动态数组表示两个一元稀疏多项式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
看了 用两个动态数组表示两个一元稀...的网友还看了以下: