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