标题:[求助]复数除法的问题
取消只看楼主
hitlfy
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-9-8
 问题点数:0 回复次数:2 
[求助]复数除法的问题
本人用运算符重载函数
operator/定义在complex类中,real,image均定义为private,double型
complex complex::operator/(complex &t)
{
complex c;
c.real=(real*t.real+image*t.image)/(t.real*t.real+t.image*t.image);
c.image(real*t.image*(-1)+image*t.real)/(t.real*t.real+t.image*t.image);
return c;
}
int main()
{
complex c1(10,2),c2(5,1),c3;
c3=c1/c2;
c3.display();
return 0;
}
程序运行输出20i.
我认为应输出2
请高手指教
搜索更多相关主题的帖子: real image 复数 除法 complex 
2006-09-15 23:05
hitlfy
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-9-8
得分:0 

这个程序我是在VC++6.0上运行的
#include <iostream>
using namespace std;
class complex
{
public:
complex(){real=0;image=0;}
complex(double a,double b):real(a),image(b){}
complex operator+(complex &);
complex operator-(complex &);
complex operator*(complex &);
complex operator/(complex &);
void display()
{
cout<<real;
if (image>0)
cout<<"+";
cout<<image<<"i"<<endl;
}
private:
double real;
double image;
};
complex complex::operator+(complex &temp)
{
return complex(real+temp.real,image+temp.image);
}
complex complex::operator-(complex &temp)
{
return complex(real-temp.real,image-temp.image);
}
complex complex::operator*(complex &temp)
{
return complex(real*temp.real-image*temp.image,real*temp.image+image*temp.real);
}
complex complex::operator/(complex &temp)
{
complex c;
c.real=(real*temp.real+image*temp.image)/(temp.real*temp.real+temp.image*temp.image);
c.image=(real*temp.image*(-1)+image*temp.real)/(temp.real*temp.real+temp.image*temp.image);
return c;
}
int main()
{
complex c1(15,3),c2(5,1),c3;
c3=c1+c2;
c3.display();
c3=c1-c2;
c3.display();
c3=c1*c2;
c3.display();
c3=c1/c2;
c3.display();
return 0;
}
运行结果为20+4i
10+2i
72+30i
30i
我对最后一个结果不明白,我认为是3

2006-09-17 12:04
hitlfy
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-9-8
得分:0 
谢谢
2006-09-20 11:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-90497-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.928054 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved