C++运算符重载(复数中除法(“/”)数学运算公式)

假设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
2.3
4.6
3.6
2.8
2.3+4.6i
3.6+2.8i
加法:
5.9+7.4i
减法:
-1.3+1.8i
乘法:
-4.6+23i
除法:
1.01731+0.486538i

#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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张立龙666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值