求以下问题的完整代码,要求使用c++面向对象的程序设计的方法和构造函数
对每个表达式,用一个数组int a[101]记录每一个幂级的系数,a[0]表示幂级为0时表达式的系数,系数为0就表示没有当前幂级没有,以此类推。最后逆序计算对应幂级并输出即可。
运行结果:
代码:
#include <iostream>
using namespace std;
class Mi
{
private:
int a[101]; //记录各幂级的系数
public:
Mi() {
for (int i = 0; i < 101; i++)
a[i] = 0; //初始化为0
}
void add(int level, int xs)
{
a[level] = xs;
}
int getXs(int level)
{
return a[level];
}
};
int main()
{
int level, xs;
int nmb = 0; //记录出现0次幂的次数
Mi m1, m2;
while (nmb < 2)
{
cin >> level >> xs; //输入
if (nmb == 0)
{
m1.add(level, xs);
}
else if (nmb == 1)
m2.add(level, xs);
if (level == 0)
nmb++;
}
int flag = 0;
for (int i = 100; i >=0; i--)
{
int t = m1.getXs(i) + m2.getXs(i);
if (t != 0)
{
if (flag != 0)
cout << "+";
if (i > 1)
cout << t << "x" << i;
else if (i == 1)
cout << t << "x";
else if (i == 0)
cout << t;
flag++;
}
}
return 0;
}
template<typename T>
void insertionSortOp(T arr[],int[] n){
for(int i=0;i<n;i++){
//e代表需要排序的元素,先对它进行个备份
T e =arr[i];
//j保存元素e应该插入的位置
int j;
for(j=i;j>0&&a[j-1]>e;j--){//终止的条件是找到要插入的位置的前一位比e小
arr[j]=a[j-1];//后移一位腾位置
}
arr[j] = e;
}
}