1 条题解

  • 2

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

    }
    Complex(float r, float i)
    {
    real = r;
    image = i;
    }
    void init(float r, float i)
    {
    real = r;
    image = i;
    }
    friend bool operator<(Complex &c1, Complex &c2)
    {
    return c1.real < c2.real || (c1.real == c2.real && c1.image < c2.image);
    }
    friend bool operator>(Complex &c1, Complex &c2)
    {
    return c1.real > c2.real || (c1.real == c2.real && c1.image > c2.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;
    }

    }
    };
    class ComplexArray
    {
    Complex Cs[100];
    int n;
    public:
    ComplexArray(int n)
    {
    this->n = n;
    float r, i;
    for (int j = 0; j < n; j++)
    {
    cin >> r >> i;
    Cs[j].init(r, i);
    }
    }
    void Sort()
    {
    for (int i = 0; i < n - 1; i++)
    for (int j = n - 1; j > i; j--)
    if (Cs[j - 1] > Cs[j])
    {
    Complex tmp;
    tmp = Cs[j - 1];
    Cs[j - 1] = Cs[j];
    Cs[j] = tmp;
    }
    for (int i = 0; i < n; i++)
    cout << Cs[i];
    }

    };
    int main()
    {
    int n;
    cin >> n;
    ComplexArray CA(n);
    CA.Sort();
    return 0;
    }

  • 1

OO2-3 复数数组类的冒泡排序

信息

ID
1116
难度
4
分类
(无)
标签
递交数
19
已通过
15
通过率
79%
上传者