Să se scrie un program care să rezolve ecuația de gradul II, ax
2 + bx + c = 0, a,b și c sunt
numere reale citite de la tastatură. Se va ține cont și de cazul a=0 și se transformă în ecuație de
gradul I: bx + c = 0.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a = 0, b = 0, c = 0, x1 = 0, x2 = 0, delta = 0;
cin >> a >> b >> c;
if( a != 0 )
{
delta = b * b - 4 * a * c;
x1 = ( ( -1 ) * b + sqrt( delta ) ) / ( 2 * a );
x2 = ( ( -1 ) * b - sqrt( delta ) ) / ( 2 * a );
if( delta > 0 )
{
cout << min( x1, x2 ) << " " << max( x1, x2 );
}
else if( delta == 0 )
{
cout << min( x1, x2 );
}
else
{
cout << "Nu exista solutii reale.";
}
}
else
{
cout << float( ( ( -1 ) * c ) / b );
}
return 0;
}
Explicație:
Am facut o rezolvare care iti ia in calcul si cand a = 0, si cand nu exista radacini reale, sau exista doar una. Daca nu iti trebuie toate astea, scoate tu. Also, am presupus ca poti sa ai si numere care nu sunt intregi, de aia sunt float. Daca sunt nelamuriri sau greseli spune-mi.