3 条题解

  • 0
    @ 2019-03-31 13:27:01
    #include <iostream>
    #include <math.h>
    using namespace std;
    class Complex
    {
        float real, image;
    public:
        Complex()
        {
    
        }
        Complex(float r, float i)
        {
            real = r;
            image = i;
        }
        double Modulo()
        {
            return sqrt(real * real + image * image);
        }
        friend ostream& operator<<(ostream &o, Complex &c)
        {
            if (c.image > 0)
                return o << c.real << "+" << c.image << "i" << endl;
            else
            {
                if (c.image == 0)
                    return o << c.real << endl;
                else
                    return o << c.real << c.image << "i" << endl;
            }
                
        }
    };
    int main()
    {
        int r1, r2, r3, i1, i2, i3;
        cin >> r1 >> i1 >> r2 >> i2 >> r3 >> i3;
        Complex c1(r1, i1), c2(r2, i2), c3(r3, i3);
        if (c1.Modulo() <= c2.Modulo())
        {
            if (c2.Modulo() <= c3.Modulo())
            {
                cout << c1 << c2 << c3;
            }
            else
            {
                if (c1.Modulo() <= c3.Modulo())
                {
                    cout << c1 << c3 << c2;
                }
                else
                {
                    cout << c3 << c1 << c2;
                }
            }
        }
        else
        {
            if (c1.Modulo() <= c3.Modulo())
            {
                cout << c2 << c1 << c3;
            }
            else
            {
                if (c2.Modulo() < c3.Modulo())
                {
                    cout << c2 << c3 << c1;
                }
                else
                {
                    cout << c3 << c2 << c1;
                }
            }
        }
    
        return 0;
    }
    
  • -1
    @ 2019-06-16 22:35:37

    #include <iostream>
    using namespace std;
    class Complex
    {
    int a, b;
    public:
    Complex(int x = 0, int y = 0)
    {
    a = x;
    b = y;
    }

    int operator<(const Complex& c2)
    {
    if ((a*a + b * b)<(c2.a*c2.a + c2.b*c2.b))
    return 1;
    else
    return 0;
    }

    Complex operator=(const Complex &c2)
    {
    a = c2.a;
    b = c2.b;
    return *this;
    }

    void print()
    {
    if (b>0)
    cout << a << "+" << b << "i" << endl;
    if (b<0)
    cout << a << b << "i" << endl;
    if (b == 0)
    cout << a << endl;
    }
    };

    int main()
    {
    int a1, b1, a2, b2, a3, b3;
    cin >> a1 >> b1;
    cin >> a2 >> b2;
    cin >> a3 >> b3;
    Complex c1(a1, b1);
    Complex c2(a2, b2);
    Complex c3(a3, b3);
    Complex t;
    if (!(c1 < c2))
    {
    t = c1;
    c1 = c2;
    c2 = t;
    }
    if (!(c2 < c3))
    {
    t = c2;
    c2 = c3;
    c3 = t;
    }
    if (!(c1 < c2))
    {
    t = c1;
    c1 = c2;
    c2 = t;
    }
    c1.print();
    c2.print();
    c3.print();
    }

  • -2

    #include <iostream>
    #include <math.h>
    using namespace std;
    class Complex
    {
    float real, image;
    public:
    Complex()
    {

    }
    Complex(float r, float i)
    {
    real = r;
    image = i;
    }
    double Modulo()
    {
    return sqrt(real * real + image * image);
    }
    friend ostream& operator<<(ostream &o, Complex &c)
    {
    if (c.image > 0)
    return o << c.real << "+" << c.image << "i" << endl;
    else
    {
    if (c.image == 0)
    return o << c.real << endl;
    else
    return o << c.real << c.image << "i" << endl;
    }

    }
    };
    int main()
    {
    int r1, r2, r3, i1, i2, i3;
    cin >> r1 >> i1 >> r2 >> i2 >> r3 >> i3;
    Complex c1(r1, i1), c2(r2, i2), c3(r3, i3);
    if (c1.Modulo() <= c2.Modulo())
    {
    if (c2.Modulo() <= c3.Modulo())
    {
    cout << c1 << c2 << c3;
    }
    else
    {
    if (c1.Modulo() <= c3.Modulo())
    {
    cout << c1 << c3 << c2;
    }
    else
    {
    cout << c3 << c1 << c2;
    }
    }
    }
    else
    {
    if (c1.Modulo() <= c3.Modulo())
    {
    cout << c2 << c1 << c3;
    }
    else
    {
    if (c2.Modulo() < c3.Modulo())
    {
    cout << c2 << c3 << c1;
    }
    else
    {
    cout << c3 << c2 << c1;
    }
    }
    }

    return 0;
    }

  • 1

OO2-2 复数类的比较运算符重载

信息

ID
1012
难度
3
分类
(无)
标签
递交数
317
已通过
153
通过率
48%
被复制
4
上传者