Warum geht das nicht richtig!???



  • Nabend @ all,

    ich hab da ein kleines Problem! Bitte seht euch mal diesen Quellcode an und sagt mir, warum er bei den ersten beiden if-Anweisungen es genau falsch herum ausspuckt!??? ==>

    #include <iostream>
    using namespace std;

    int main()
    { // Dieses Programm zeigt die if - Anweisung
    // mit der else - Klausel

    int u, z;
    cout << " Geben Sie bitte eine Zahl ein: ";
    cin >> u;
    cout << " Geben Sie bitte eine zweite Zahl ein: ";
    cin >> z;
    cout << " Die beiden Zahlen lauten ==> ";
    cout << " u = " << u << " , z = " << z << endl;

    if (u <= z)
    {
    if (u >= z)
    {
    if (u == z)
    cout << " Variable u ist gleich z! " << endl;
    else
    cout << " Variable u ist NICHT gleich z! " << endl;
    }
    else
    cout << " Variable u ist größer gleich als Variable z! " << endl;
    }
    else
    cout << " Variable u ist kleiner gleich als Variable z! " << endl;

    cin.sync();
    cin.clear();
    cin.get();
    }

    Wenn ich nach der ersten if-Anweisung frage, spuckt er mir den Text für die zweite Anweisung aus!! Erstaunlicherweise geht die dritte Anweisung richtig, wenn ich nach Ihr frage! Bitte helft mir, oder sagt mir meinen Denkfehler, ich kriege das nicht allein gebacken, außer ich ändere ahlt die Operatoren oder den jeweiligen Text zur Anweisung ... (ist aber absolut nicht gewollt!!!)

    Grüße, Alpenjumper



  • Also das funktioniert so nicht:
    Wenn nämlich u==z wahr ist, sind u<=z und u>=z auch beide wahr!
    Wenn u<=z wahr ist, dann ist u>=z nur wahr, wenn u==z ist!
    Somit heisst das in etwa folgendes für Deinen Code:

    if (u==z)
    {
    	cout << " Variable u ist gleich z! " << endl;
    	cout << " Variable u ist kleiner gleich als Variable z! " << endl;
     	cout << " Variable u ist grösser gleich als Variable z! " << endl;
    }
    else 
    {
    	cout << " Variable u ist NICHT gleich z! " << endl; 
    	if (u <= z) 
    		cout << " Variable u ist kleiner gleich als Variable z! " << endl;
    	else
    		cout << " Variable u ist grösser gleich als Variable z! " << endl;
    
    }
    

    Ausserdem bist Du hier im falschen Forum... Diese Frage wär vielleicht was für die Mathematiker ;), hat aber nichts mit Compilern zu tun



  • Probiers mal so:

    //...
    
    if( u == z ) // falls u gleich z ist...
    {
        cout << "Variable u ist gleich z!" << endl;
    }
    else if( u < z ) //...falls allerdings u < z ist...
    {
        cout << "Variable u ist kleiner als z!" << endl;
    }
    else // gut, keiner der beiden anderen Fälle ist eingetreten, also muss u > z sein!
        cout << "Variable u ist groesser als z!" << endl;
    
    return 0; // um main() wieder zu verlassen
    }
    


  • Danke @ both,

    hab das mal von Rockstar übernommen und es funzt jetzt! Komisch finde ich nur, das meins vorher nicht geklappt hat, weil es fast so 1:1 in einem Buch steht, wonach ich grade C++ ein bisschen lernen will! Finde ich echt zum heulen, das die Beispiele aus dem Buch nicht richtig funktionieren ...

    Naja, trotzdem Danke nochmal für die schnellen und hilfreichen Antworten!

    Grüße, Alpenjumper



  • Falls der Code den du da oben getippt hast, tatsächlich exakt so in dem Buch steht, dann würde ich sagen: Wirf das Ding in die Tonne 🙂



  • oder verbrenn das Buch 🙂


Log in to reply