-->
当前位置:首页 > 题库 > 正文内容

7-3 重载大于号运算符,比较复数大小 (3 分)

Luz4年前 (2021-03-08)题库3427
7-3 重载大于号运算符,比较复数大小 (3 分)

本题目要求编写代码的功能为: 输入两个复数(变量名自拟),比较复数模的大小,复数实部与虚部都是整数 要求输入时输入4个整数,分别代表复数1的实部、虚部,复数2的实部虚部

输入格式:

在同一行中输入4个整数,分别代表复数1的实部、虚部,复数2的实部虚部

输出格式:

输出比较两个复数模的大小的结果: 当复数1模大于复数2时 输出1 当复数1模小于复数2时 输出-1 当复数1模等于复数2时 输出0

输入样例:

例如:输入复数1为 12+34i,复数2为 58+59i 时格式如下

12 34 58 59

输出样例:

复数1模小于复数2的模,所以输出-1

-1
作者
jolie
单位
佳木斯大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <iostream>
using namespace std;

class A {
public:
    A(int x = 0, int y = 0) : x(x), y(y) {}
    void show() const;
    A operator+(A& a);
    A operator-(A& a);
    int operator>(A&a);
private:
    int x, y;
};
A A::operator+(A& a){
	int x1=x+a.x;
	int y1=y+a.y;
    A b(x1,y1);
    return b;
}
A A::operator-(A& a){
	int x1=x-a.x;
	int y1=y-a.y;
    A b(x1,y1);
    return b;
}
int A::operator>(A& a){
    if(x*x+y*y>a.x*a.x+a.y*a.y){
        return 1;
    }
    else if(x*x+y*y==a.x*a.x+a.y*a.y){
        return 0;
    }
    else{
        return -1;
    }
}
void A::show() const {
    cout << "(" << x << ", " << y << ")" << endl;
}


int main() {
    int x,y;
    cin>>x>>y;
    A a1(x,y);
    cin>>x>>y;
    A a2(x,y);
    cout<<(a1>a2);
    return 0;
}