Was ist Falsch?



  • Hallo,
    ich bin erst seit kurzem in die Sprache C++ eingestiegen und hab ne Frage:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        double fahrenheit;
        double celsius;
    
        printf("Temperatur in celsius: ");
        cin >> celsius;
    
        celsius = (fahrenheit - 32) * 5.0 / 9.0;
    
        printf("%f Grad celsius entsprechen %f Grad Fahrenheit \n", celsius, fahrenheit);
    
        return 0;
    }
    

    wenn ich hier nicht celsius eingebe sondern Fahrenheit (also alles andersrum dann tuts)
    Aber warum so nich der rechnet so immer Fahrenheit auf 0.



  • cin >> celsius;                             //<-verständlich
    
        celsius = (fahrenheit - 32) * 5.0 / 9.0;    // <-Macht kein sin!!!
    

    vll solltest du dir zuweisungen und so was nocheinmal anschauen
    deine eingabe ist in c++ style dein ausgabe in c
    in c++ wär das cout<<Variable<<"STRING"<<Variable2<<endl;



  • Ja vllt hast du da dran recht aber es müsst trotzdem funkionieren.
    Mein Problem ist ja dass der bei Fahrenheit immer auf 0 ausrechnet und nicht auf den wert dem ich ihm in celsius gebe!
    des mit dem pritf war nur mal so zum ausprobieren mit cout kommt genau des gleiche raus!



  • 1. Ergebnis /* lvalue */ = Berechnung;
    2. Fahrenheit beinhaltet noch dazu einen undefienierten Wert;



  • Hier wird ein Wert in die Variable 'celsius' eingelesen:

    cin >> celsius;
    

    Und hier weist du der Variablen 'celsius' das Ergebnis deiner Berechnung zu:

    celsius = (fahrenheit - 32) * 5.0 / 9.0;
    

    Das ergibt schonmal keinen Sinn, wie es 123 ebenfalls schon geschrieben hatte. Darüber hinaus hast du der Variablen 'fahrenheit' noch überhaupt keinen Wert zugewiesen und somit ist diese Variable undefiniert, wie es schon lvalue geschrieben hatte.

    Ich vermute mal, dass du deine Berechnung doch eigentlich so schreiben wolltest:

    fahrenheit = (celsius - 32) * 5.0 / 9.0;
    

Anmelden zum Antworten