一个复数类,运算符重载 + ,实现复数和复数的相加。输入一组复数,每行一个复数,直到输入0结束。 输出这组复数的结果。
要求输出符合书写习惯。
输入示例
3+2i
2+3i
0
输出示例
要求输出符合书写习惯。
输入示例
3+2i
2+3i
0
输出示例
5+5i
时间限制
1000 ms
内存限制
65536 kB
代码长度限制
8192 B
判题程序
Standard
来源
重载
#include<iostream>
using namespace std;
class test
{
int a;
int b;
public:
test(int a,int b):a(a),b(b){
}
test operator + (test& p);
void out();
};
void test::out()
{
if(b==0)
{
cout<<a;
return;
}
if(a!=0)
cout<<a;
if(b<0&&b!=-1)
{
cout<<b<<"i";
return;
}
if(b==-1)
{
cout<<"-i";
return;
}
if(b==1)
{
if(a!=0)
cout<<"+";
cout<<"i";
return;
}
if(b>0)
{
if(a!=0)
cout<<"+";
cout<<b<<"i";
return;
}
}
test test::operator +(test & p)
{
a=a+p.a;
b=b+p.b;
return *this;
}
int main()
{
int a,b;
char c;
test t(0,0);
cin>>a;
while((c=getchar())!='\n')
{
cin>>b;
getchar();
if(c=='-')
b=-b;
test s(a,b);
t=t+s;//cout<<c<<endl;
cin>>a;
}
t.out();
return 0;
}