Lösung quadratischer Gleichung



  • Hallo,
    habe nach 10 Programmen bei meiner letzten Aufgabe nochmal ein kleines Problem.
    Das Programm soll quadratische Gleichungen lösen. Jedoch berechnet es bei mir die Nullstellen falsch.
    Vielleicht könnt ihr ja einen Blick darauf werfen und habt einen entscheidenen Tip für mich. Danke im Voraus!
    Max

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
    
    int a=0.0;
    int b=0.0;
    int c=0.0;
    int d;
    double x1=0.0;
    double x2=0.0;
    
    printf("a: ");
    scanf("%f", &a);
    printf("b: ");
    scanf("%f", &b);
    printf("c: ");
    scanf("%f", &c);
    
    {
    d = b*b - 4*a*c;
    if (d == 0.0)
    {
    x1=(-b/(2*a));
    printf("Die doppelte Nullstelle lautet %.2f.", x1);
    }
    else
    if (d > 0.0)
    {
    x1 =(-b + sqrt(d)/(2*a));
    x2 =(-b - sqrt(d)/(2*a));
    printf("Die beiden reellen Loesungen sind %.2f und %.2f.", x1, x2);
    }
    else
    printf("Es gibt keine reelle Loesung.");
    }
    }
    


  • Du hast die Variablen a,b,c und d falsch deklariert. Du solltest generell double verwenden (du liest ja auch mittels %f ein)!



  • bei scanf steht %f für float und %lf für double



  • Danke Euch.
    Jetzt hat alles funktioniert.
    Immer diese kleinen Fehler die sich einschleichen.


Anmelden zum Antworten