题目描述

编写一个复数类,有构造函数,能对复数初始化;重载加法操作符并按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;
}