请你使用c++回答下列问题:设计一个复数类能够实现两复数的加法和减法。 输入 每行有4个整数,前两个数表示一个复数的实部和虚部,后两个数表示另一个复数的实部和虚部。 输出 对于每组数据,输出两复数的和与差,格式参照样例输出。若虚部为0,只输出实部。
时间: 2024-02-11 17:08:42 浏览: 76
好的,下面是使用 C++ 设计的复数类,可以实现两复数的加法和减法:
```cpp
#include <iostream>
using namespace std;
class Complex {
private:
int real;
int imag;
public:
Complex(int r = 0, int i = 0) {
real = r;
imag = i;
}
Complex operator+(Complex const &obj) {
Complex res;
res.real = real + obj.real;
res.imag = imag + obj.imag;
return res;
}
Complex operator-(Complex const &obj) {
Complex res;
res.real = real - obj.real;
res.imag = imag - obj.imag;
return res;
}
void print() {
if (imag == 0) {
cout << real << endl;
} else if (real == 0) {
cout << imag << "i" << endl;
} else {
cout << real << " + " << imag << "i" << endl;
}
}
};
int main() {
int a, b, c, d;
while (cin >> a >> b >> c >> d) {
Complex x(a, b), y(c, d);
Complex sum = x + y;
Complex diff = x - y;
sum.print();
diff.print();
}
return 0;
}
```
输入格式为每行四个整数,表示两个复数的实部和虚部,以空格分隔。通过 `Complex` 类中的 `operator+` 和 `operator-` 分别实现两个复数的加法和减法。在 `print` 函数中输出结果,如果虚部为0,只输出实部,如果实部为0,只输出虚部,否则按照标准复数格式输出。
输出格式为每组数据输出两行,分别为两个复数的和与差。
阅读全文