C++
复数的比较
建立一个复数类,实数和虚数是其私有数据成员。建立一个>(大于号)的运算符重载,比较两个复数间模的大小。
测试输入包含若干测试用例,每个测试用例占一行。每个测试用例包括四个数字,前两个数字分别表示第一个复数的实部和虚部,第三个和第四个数字分别表示第二个复数的实部和虚部。每个数字之间用空格间隔。当读入一个测试用例是0 0 0 0时输入结束,相应的结果不要输出。
对每个测试用例输出一行。当第一个复数的模大于第二个复数的模时,输出 true ,当第一个复数的模小于或等于第二个复数的模时,输出false
#include<iostream>
#include<math.h>
using namespace std;
class Complex
{
double real;
double imag;
public:
Complex(double r,double i)
{
real=r;
imag=i;
}
Complex()
{}
bool friend operator >(Complex a,Complex b)
{
double Q1=sqrt(a.real*a.real+a.imag*a.imag);
double Q2=sqrt(b.real*b.real+b.imag*b.imag);
if(Q1>Q2)
{
return true;
}
else if(Q1<=Q2)
{
return false;
}
}
};
int main()
{
double m1,n1,m2,n2;
while(cin>>m1>>n1>>m2>>n2)
{
if(m1==0&&n1==0&&m2==0&&n2==0)
{
break;
}
Complex c1(m1,n1),c2(m2,n2);
if(c1>c2)
{
cout<<"true"<<endl;
}
else
{
cout<<"false"<<endl;
}
}
return 0;
}