﻿// Feladat: Oldjunk meg egy a*x^2 + b*x + c = 0
// alakú egyenletet, ahol a, b, c a felhasználótól
// bekért valós számok és a != 0.
/*
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double a, b, c;

    cout << "a*x^2 + b*x + c == 0 "
         << "egyenlet megoldasa..." << endl;

    cout << "a = ";
    cin >> a;

    cout << "b = ";
    cin >> b;

    cout << "c = ";
    cin >> c;


    double delta = b*b - 4*a*c;

    if (delta < 0)
        cout << "nincs valos megoldas..." << endl;
    else if (delta == 0)
        cout << "egy megoldas van (a ket gyok "
             << "egybeesik: " << -b/(2*a);
    else
        cout << "ket megoldas van: "
             << (-b-sqrt(delta)) / (2*a) << " "
             << (-b+sqrt(delta)) / (2*a) << endl;

    return 0;
}
*/

/* HF.
   Alakítsuk át a programot úgy, hogy kezelje jól
   az a == 0 esetet is! (Vagyis meg tudunk majd
   oldani egy "legfeljebb másodfokú" egyenletet.)
*/

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double a, b, c;

    cout << "a*x^2 + b*x + c == 0 "
         << "egyenlet megoldasa..." << endl;

    cout << "a = ";
    cin >> a;

    cout << "b = ";
    cin >> b;

    cout << "c = ";
    cin >> c;

    if (a == 0) { // nem másodfokú
        // b*x + c == 0

        if (b == 0) {
            // c == 0
            if (c == 0)
                cout << "barmely valos szam megoldas" << endl;
            else
                cout << "nincs megoldas" << endl;
        }
        else {
            cout << "egy megold: " << -c/b;
        }
    }
    else {
        double delta = b*b - 4*a*c;

        if (delta < 0)
            cout << "nincs valos megoldas..." << endl;
        else if (delta == 0)
            cout << "egy megoldas van (a ket gyok "
                 << "egybeesik: " << -b/(2*a);
        else
            cout << "ket megoldas van: "
                 << (-b-sqrt(delta)) / (2*a) << " "
                 << (-b+sqrt(delta)) / (2*a) << endl;
    }
    return 0;
}
