Comparación de números complejos.

Descripción del título: Establezca una clase de número complejo, los números reales e imaginarios son sus miembros de datos privados. Cree una sobrecarga del operador> (mayor que) para comparar la magnitud del módulo entre dos números complejos.

Formato de entrada: la entrada de prueba contiene varios casos de prueba, y cada caso de prueba ocupa una línea. Cada caso de prueba incluye cuatro números: los dos primeros números representan las partes real e imaginaria del primer número complejo, y los números tercero y cuarto representan las partes real e imaginaria del segundo número complejo. Usa espacios entre cada número. Cuando leer un caso de prueba es 0 0 0 0 0 la entrada finaliza, los resultados correspondientes no salen.

Formato de salida: genera una línea para cada caso de prueba. Cuando el módulo del primer número complejo es mayor que el módulo del segundo número complejo, se emite verdadero, cuando el módulo del primer número complejo es menor o igual que el módulo del segundo número complejo, se emite falso

Entrada de muestra:

3 5 4 0

0 3 4 1

0 0 0 0

Salida de muestra:

cierto

falso

#include <iostream>

using namespace std;

class Complex {
private:
    double real;
    double imag;
public:
    Complex() {

    }

    void set(double r, double m) {
        real = r;
        imag = m;
    }

    friend bool operator>(Complex, Complex);

};

bool operator>(Complex c1, Complex c2) {
    return (c1.real * c1.real + c1.imag * c1.imag) > (c2.real * c2.real + c2.imag * c2.imag);
}


int main() {
    double a, b, c, d;
    Complex c1, c2;
    cin >> a >> b >> c >> d;
    do {
        c1.set(a, b);
        c2.set(c, d);
        cout << ((c1 > c2) ? "true" : "false") << endl;
        cin >> a >> b >> c >> d;
    } while (!(a == 0 && b == 0 && c == 0 && d == 0));

}
Publicado 163 artículos originales · elogiado 18 · visitas 7683

Supongo que te gusta

Origin blog.csdn.net/xcdq_aaa/article/details/105448320
Recomendado
Clasificación