本题目要求编写代码的功能为:
输入两个复数(变量名自拟),比较复数模的大小,复数实部与虚部都是整数
要求输入时输入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
解决方案: 对比较符号“>”实现重载;
定义一个复数类“Complex”并在其中进行实现;
#include <iostream>
#include <string>
#include<cmath>
using namespace std;
class Complex
{
public:
Complex(int i, int j) :m(i), n(j){}
int operator>(const Complex& c)
{
int square1 = pow(m, 2) + pow(n, 2);
int square1_root1 = sqrt(square1);
int square2 = pow(c.m, 2) + pow(c.n, 2);
int square2_root1 = sqrt(square2);
if (square1_root1>square2_root1){ return 1; }
else if (square1_root1<square2_root1){ return -1; }
else if (square1_root1 = square2_root1){ return 0; }
}
private:
int m, n;
};
int main()
{
int x, y, m, n;
cin >> x >> y >> m >> n;
Complex c1(x, y);
Complex c2(m, n);
int rat = c1>c2;
cout<< rat << endl;
return 0;
}