huwul
Grünschnabel
Hallo zusammen,
ich muss für einen Info-Kurs unter folgenden Vorgaben eine quadratische Gleichung lösen:
bei a = 0 Ausgabe : Keine Division durch 0 möglich
ist die Diskriminante D= b²-4ac < 0 dann Ausgabe: keine Lösung in reellen Zahlen
für a != 0 gilt : x1= 1/2a * (-b + (b²-4ac)¹/²) , x2= 1/2a * (-b - (b²-4ac)¹/²)
mein Quellcode:
vorgegeben sind Testläufe mit a= 1 b = 2 c = -3, a = 4 b = 8 c = 0, a = 0, a = 1 b=2 c=3;
soweit so gut, funktioniert das bei mir alles wunderbar außer für a = 4 b = 8 c = 0, da erhalte ich richtigerweise für x1 = 0 und für x2 allerdings = -32
Ich hoffe ihr könnt mir einen guten Ratschlag geben.
MfG
ich muss für einen Info-Kurs unter folgenden Vorgaben eine quadratische Gleichung lösen:
bei a = 0 Ausgabe : Keine Division durch 0 möglich
ist die Diskriminante D= b²-4ac < 0 dann Ausgabe: keine Lösung in reellen Zahlen
für a != 0 gilt : x1= 1/2a * (-b + (b²-4ac)¹/²) , x2= 1/2a * (-b - (b²-4ac)¹/²)
mein Quellcode:
Code:
#include <iostream>
#include <cmath>
//#include <libmath>
using namespace std;
int main()
{
double a,b,c,x1,x2,wurzel,eins=1,zwei=2,vier=4;
cout << "Geben sie ihre Werte für die Gleichung ax²+bx+c=0 zur Berechnung ein" << endl;
cout << " a = " << endl;
cin >> a;
if ( a == 0 )
{
cout << " Division durch 0 nicht möglich " << endl;
}
else
{
cout << " b = " << endl;
cin >> b;
cout << " c = " << endl;
cin >> c;
wurzel = b*b-vier*a*c;
if ( wurzel < 0 )
{
cout << " Keine reellen Lösungen! " << endl;
}
else
{
x1=(eins/zwei*a) * ( -b + sqrt( wurzel));
x2=(eins/zwei*a) * ( -b - sqrt( wurzel));
cout << " Lösung 1 : " << x1 << endl;
cout << " Lösung 2 : " << x2 << endl;
}
}
}
vorgegeben sind Testläufe mit a= 1 b = 2 c = -3, a = 4 b = 8 c = 0, a = 0, a = 1 b=2 c=3;
soweit so gut, funktioniert das bei mir alles wunderbar außer für a = 4 b = 8 c = 0, da erhalte ich richtigerweise für x1 = 0 und für x2 allerdings = -32
Ich hoffe ihr könnt mir einen guten Ratschlag geben.
MfG