Hilfe bei einem einfachen Programm



  • Hi, ich bin gerade C am lernen und brauche etwas Hilfe bei meinem Programm, dass einfach Nullstellen von Quadratischenfunktionen ausrechnen soll.
    Das Problem ist, wenn ich unter der wurzel eine negative Zahl, gibt das Programm unidentifizierte Werte heraus, obwohl es mir "keine Nullstellen" herausgeben soll. Ich vermute einen Syntaxfehler, beim übergang von der Wurzelberechung zu den Nullstellen. Ich hoffe Ihr könnt mir helfen. 🙂

    #include<stdio.h>
    #include<math.h>
    
    int main(){
    
    float p,q,wurzel,x1,x2;
    //Eingabe von p und q
    printf("geben sie p:");
    scanf("%f",&p);
    
    printf("geben sie q:");
    scanf("%f",&q);
    //berechnung
    wurzel = sqrt((p*p/4) - q);
    x1 = -p/2 + wurzel;
    x2 = -p/2 - wurzel;
    
    //Ausgabe
    if (wurzel>0)printf("Hat keine Nullstellen");
    else printf("X1:%f\n",x1);
         printf("X2:%f",x2);
    
    return 0;
    }
    

  • Mod

    pettajam schrieb:

    leider streikt der wenn ich etwas negatives utner der Wurzel habe.

    😕 Und das wundert dich? Was ist denn "die" Wurzel von -1?



  • i, ...

    if (wurzel>0)printf("Hat keine Nullstellen");
    else printf("X1:%f\n",x1);
         printf("X2:%f",x2);
    

    Der Teil sollte ja alles Bereinigen.



  • Du musst schon prüfen, ob das "(p*p/4) - q" kleiner als 0 ist und zwar bevor du die Wurzel daraus ziehst!



  • Tip: Vor dem Wurzelziehen prüfen, ob der Ausdruck (p*p/4) - q <0 ist.

    Edit: Da war jemand schneller



  • Ahhh, Danke für den Tipp, das war natürlich ein blöder Denkfehler.
    Ich danke euch.

    Mfg Petta

    P.S: Falls noch andere Probleme auftretten schreib ich die mal hier in den Thread. Ich fiond ein bisschen blöd für sowas ein extra Thread aufzumachen. 🙂


  • Mod

    pettajam schrieb:

    P.S: Falls noch andere Probleme auftretten schreib ich die mal hier in den Thread. Ich fiond ein bisschen blöd für sowas ein extra Thread aufzumachen. 🙂

    Wir haben aber nichts gegen neue Threads. Im Gegenteil: Neue Threads mit aussagekräftigen Titeln helfen anderen Nutzern Informationen zu finden. Ein Thread der weit vom Thema abkommt verwirrt hingegen nur.


Anmelden zum Antworten