#include <iostream> using namespace std; int main() { int n1, n2; cin >> n1 >> n2; double a1[n1], a2[n2]; for(int i=0; i<n1; i++) cin >> a1[i]; for(int i=0; i<n2; i++) cin >> a2[i]; Polynomial p1(a1, n1); Polynomial p2(a2, n2); Polynomial pp; pp += p1; cout << pp << endl; p2 += pp; cout << p2 << endl; return 0; } /* 请在这里填写答案,你只需要完成复合赋值(+=)运算符函数即可,其他均已由系统实现 */
时间: 2023-06-19 15:03:10 浏览: 93
以下是复合赋值运算符函数的实现:
```c++
Polynomial& operator+=(const Polynomial& other) {
int newDegree = max(degree, other.degree);
double* newCoeffs = new double[newDegree + 1];
for (int i = 0; i <= newDegree; i++) {
double sum = 0.0;
if (i <= degree) sum += coeffs[i];
if (i <= other.degree) sum += other.coeffs[i];
newCoeffs[i] = sum;
}
delete[] coeffs;
coeffs = newCoeffs;
degree = newDegree;
return *this;
}
```
该函数首先计算两个多项式的最高次数,然后动态分配一个新的系数数组,遍历新的系数数组,对于每一个次数,计算两个多项式在该次数的系数之和。最后释放原来的系数数组,将指针指向新的系数数组,并更新多项式的最高次数。最后返回该对象的引用,以支持链式运算。
相关问题
代码改错#include<iostream> using namespace std; int main() { int n; std::cin>>n; std::cout<<n<<endl; return 0; }
这段代码存在一个错误,就是在 return 语句后面的分号多了一个中文的分号符号,应该改成英文的分号符号。正确的代码如下:
```
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
cout << n << endl;
return 0;
}
```
这样就能正确编译运行了。
#include <iostream>using namespace std;class Calculator { private: int num1, num2; public: Calculator(int n1, int n2) { num1 = n1; num2 = n2; } int add() { return num1 + num2; }};int main() { int n1, n2; cout << "Enter two numbers:" << endl; cin >> n1 >> n2; Calculator calc(n1, n2); cout << "Sum is: " << calc.add() << endl; return 0;}
这是一个简单的 C++ 程序,实现了一个 Calculator(计算器)类,可以对两个整数进行加法运算。在程序中,用户会被要求输入两个整数,然后创建一个 Calculator 对象,并调用其 add 方法,将计算结果输出到屏幕上。程序中的 class 关键字用于定义类,private 关键字用于声明私有成员变量和方法,public 关键字用于声明公共成员变量和方法。在构造函数中,使用了初始化列表的方式对成员变量进行初始化。
阅读全文
相关推荐














