复数的比较

题目描述:建立一个复数类,实数和虚数是其私有数据成员。建立一个>(大于号)的运算符重载,比较两个复数间模的大小。

输入格式:测试输入包含若干测试用例,每个测试用例占一行。每个测试用例包括四个数字,前两个数字分别表示第一个复数的实部和虚部,第三个和第四个数字分别表示第二个复数的实部和虚部。每个数字之间用空格间隔。当读入一个测试用例是0 0 0 0时输入结束,相应的结果不要输出。

输出格式:对每个测试用例输出一行。当第一个复数的模大于第二个复数的模时,输出 true ,当第一个复数的模小于或等于第二个复数的模时,输出false

输入样例:

3 5 4 0

0 3 4 1

0 0 0 0

输出样例:

true

false

#include <iostream>

using namespace std;

class Complex {
private:
    double real;
    double imag;
public:
    Complex() {

    }

    void set(double r, double m) {
        real = r;
        imag = m;
    }

    friend bool operator>(Complex, Complex);

};

bool operator>(Complex c1, Complex c2) {
    return (c1.real * c1.real + c1.imag * c1.imag) > (c2.real * c2.real + c2.imag * c2.imag);
}


int main() {
    double a, b, c, d;
    Complex c1, c2;
    cin >> a >> b >> c >> d;
    do {
        c1.set(a, b);
        c2.set(c, d);
        cout << ((c1 > c2) ? "true" : "false") << endl;
        cin >> a >> b >> c >> d;
    } while (!(a == 0 && b == 0 && c == 0 && d == 0));

}
发布了163 篇原创文章 · 获赞 18 · 访问量 7683

猜你喜欢

转载自blog.csdn.net/xcdq_aaa/article/details/105448320
今日推荐