题目描述
编写一个复数类,有构造函数,能对复数初始化;重载加法操作符并按a+bi 的形式输出。
输入描述:
输入第一行表示测试用例的个数m,接下来m行每行有4个用空格隔开的整数,分别表示2个复数的实部和虚部。
输出描述:
输出m行。按a+bi或者a-bi的格式输出,表示两个复数相加的和。
输入
1
3 4 1 -2
输出
4+2i
版本1
#include<bits/stdc++.h>
using namespace std;
class Complex{
public:
int real,imag;
Complex(int x,int y){
real = x;
imag = y;
}
Complex operator + (Complex &a){ //类成员重载
return Complex(real +a.real, imag+a.imag);
}
void show(){
cout<<real;
if(imag > 0) cout<<"+"<<imag<<"i"<<endl;
else cout<<imag<<"i"<<endl;
}
};
int main(){
int m,x,y,u,v;
while(cin>>m){
while(m--){
cin>>x>>y>>u>>v;
Complex a(x,y),b(u,v);
a = a + b;
a.show();
}
}
return 0;
}
版本2
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,x,y,u,v;
while(cin>>m){
while(m--){
cin>>x>>y>>u>>v;
cout<<x+u;
if(y+v > 0) cout<<"+"<<y+v<<"i"<<endl;
else cout<<y+v<<"i"<<endl;
}
}
return 0;
}