Komische Ergebnisse bei der pq Formel

Ev385

Grünschnabel
Hallo,

Ich habe die pq-Formel programmiert.

Das ist mein Code:

#include <stdio.h>
#include <math.h>

int main()
{
double p, q;
double x1, x2;

scanf("%f", &p);
scanf("%f", &q);

x1 = -p/2;
x2 = sqrt((p/2)*(p/2) - q);

printf("x1 = %f \n", x1 + x2);
printf("x2 = %f \n", x1 - x2);

return 0;

}

Das Programm zeigt mir zwar keine Fehler an, aber egal was ich für p und q eingebe, ich bekomme als
Ergebnis für x1, x2 immer -1.#INDOO heraus.
Das geschieht auch wenn unter der Wurzel eine positive Zahl ist.
Kann mir bitte jemand erklären was das ist, wo das herkommt und warum ich so ein Ergebnis erhalte. :D
 

sheel

I love Asm
Hi

scanf braucht %lf für double, %f gilt nur für float
(printf ist da anders, %f ist für beide).
Die ganze Formel wird daher schon mit falschen Werten angefangen....