Math.h Wurzelberechnung Domain Fehler?

bigfella

Erfahrenes Mitglied
Hi..

Hab folgendes Programm geschrieben.
Code:
#include <stdio.h>
#include <math.h>

int main(void)
{
int z1, z2, z3;
float erg1, erg2;

printf("\n a = Zahl1:");
scanf("%d", &z1);
printf("\n b = Zahl2:");
scanf("%d", &z2);
printf("\n c = Zahl3:");
scanf("%d", &z3);

erg1 =  ( -z2 + sqrt ((z2*z2)- 4*z1*z3)  / (2*z1)  );
printf("\n 1.Nullstelle: %f", erg1);

getch();
return 0;
}

Wenn ich es ausführen möchte, bekomme ich folgende Meldung:
"sqrt domain error"
Was muss ich tun? An was liegt es?

Danke!
 

RedWing

Erfahrenes Mitglied
Wenn ich es ausführen möchte, bekomme ich folgende Meldung:
"sqrt domain error"

Domain == Wertebereich.

Das bedeutet der Wertebereich wurde übertreten.
Die Wurzel ist für negative Zahlen nicht definiert.

Gruß

RedWing
 
Vielleicht liegt es daran, dass bei bestimmten Eingaben das Argument von sqrt kleiner 0 wird?

Abgesehen davon hat sich wohl auch noch ein logischer Fehler eingeschlichen: der Ausdruck -z2 + sqrt ((z2*z2)- 4*z1*z3) gehört geklammert.