传送门:http://lx.lanqiao.cn/problem.page?gpid=T372
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double x,double y):real(x),imag(y) {}
Complex operator + (Complex& m);
Complex operator - (Complex& m);
Complex operator * (Complex& m);
Complex operator / (Complex& m);
void output();
private:
double real;
double imag;
};
Complex Complex::operator + (Complex& m)
{
Complex c;
c.real = real + m.real;
c.imag = imag + m.imag;
return c;
}
Complex Complex::operator - (Complex& m)
{
Complex c;
c.real = real - m.real;
c.imag = imag - m.imag;
return c;
}
Complex Complex::operator * (Complex& m)
{
Complex c;
c.real = real*m.real - imag * m.imag;
c.imag = real*m.imag + imag * m.real;
return c;
}
Complex Complex::operator / (Complex& m)
{
Complex c;
c.real = (real * m.real + imag * m.imag) / (m.real*m.real + m.imag * m.imag);
c.imag = (imag * m.real - real * m.imag) / (m.real*m.real + m.imag * m.imag);
return c;
}
void Complex::output()
{
printf("%.2lf+%.2lfi\n",real,imag);
}
int main()
{
double a,b,c,d;
char op;
while(~scanf(" %c %lf %lf %lf %lf",&op,&a,&b,&c,&d))
{
Complex t1(a,b),t2(c,d);
Complex ans;
if(op=='+') ans=t1+t2;
if(op=='-') ans=t1-t2;
if(op=='*') ans=t1*t2;
if(op=='/') ans=t1/t2;
ans.output();
}
return 0;
}