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