假设x为实部,y为虚部。
定义复数A,复数B,复数t;
t.x=((A.x*B.x)+(A.y*B.y))/((B.x*B.x)+(B.y*B.y));
t.y=((A.y*B.x)-(A.x*B.y))/((B.x*B.x)+(B.y*B.y));
下面为为例题
用友元运算符重载函数进行复数运算,实现复数的+、-、*、/。
例:输入的两个复数为2.3+4.6i,3.6+2.8i,屏幕上输出这两个复数及加减乘除后的结果。
描述
在此处编写题目描述信息
点击编辑器菜单栏按钮 {;} 添加示例代码
输入输出示例
在此处提供一个符合格式描述的例子, 对于自动评阅题, 您也可以选择直接在测试用例中提供
输入 | 输出 | |
示例 1 | | |
#include <iostream>
using namespace std;
class yun{
public:
double x,y;
yun(double x1=0.0,double y1=0.0){
x=x1;
y=y1;
}
friend yun operator+(yun &A,yun &B);
friend yun operator-(yun &A,yun &B);
friend yun operator*(yun &A,yun &B);
friend yun operator/(yun &A,yun &B);
void display(){
if(y<0)
cout<<x<<y<<"i"<<endl;
else
cout<<x<<"+"<<y<<"i"<<endl;
}
};
yun operator+(yun &A,yun &B){
yun t;
t.x=A.x+B.x;
t.y=A.y+B.y;
return t;
}
yun operator-(yun &A,yun &B){
yun t;
t.x=A.x-B.x;
t.y=A.y-B.y;
return t;
}
yun operator*(yun &A,yun &B){
yun t;
t.x=(A.x*B.x)-(A.y*B.y);
t.y=(A.x*B.y)+(A.y*B.x);
return t;
}
yun operator/(yun &A,yun &B){
yun t;
t.x=((A.x*B.x)+(A.y*B.y))/((B.x*B.x)+(B.y*B.y));
t.y=((A.y*B.x)-(A.x*B.y))/((B.x*B.x)+(B.y*B.y));
return t;
}
int main() {
double a,b,c,d;
cin>>a>>b>>c>>d;
yun A(a,b),B(c,d),C,D,E,F;
A.display();
B.display();
C=A+B;
cout<<"加法:"<<endl;
C.display();
D=A-B;
cout<<"减法:"<<endl;
D.display();
E=A*B;
cout<<"乘法:"<<endl;
E.display();
F=A/B;
cout<<"除法:"<<endl;
F.display();
}