您的位置:首页 > 其它

复数四则运算-操作符重载

2017-09-24 08:17 162 查看


代码:

struct complex_number//复数结构体
{
double shi;//实部
double xu;//虚部
void input()//输入
{
scanf("%lf%lf",&shi,&xu);
}
void print()//输出
{
printf("%.2lf + %.2lfi\n",shi,xu);
}
complex_number operator+(complex_number x)//加
{
complex_number ans;
ans.shi = shi + x.shi;
ans.xu = xu + x.xu;
return ans;
}
complex_number operator-(complex_number x)//减
{
complex_number ans;
ans.shi = shi - x.shi;
ans.xu = xu - x.xu;
return ans;
}
complex_number operator*(complex_number x)//乘
{
complex_number ans;
ans.shi = shi * x.shi - xu * x.xu;
ans.xu = xu * x.shi + shi * x.xu;
return ans;
}
complex_number operator/(complex_number x)//除
{
complex_number ans;
ans.shi = (shi * x.shi + xu * x.xu) / (x.shi * x.shi + x.xu * x.xu);
ans.xu = (xu * x.shi - shi * x.xu) / (x.shi * x.shi + x.xu * x.xu);
return ans;
}
//    void operator=(complex_number x)//重载赋值操作符,但并没有必要
//    {
//        shi = x.shi;
//        xu = x.xu;
//    }
};
int main()
{
complex_number a,b,c;//定义变量
a.input();//输入
b.input();
c = a + b;//运算
c.print();//输出
c = a - b;
c.print();
c = a * b;
c.print();
c = a / b;
c.print();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: