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;
}