If-Schleife Problem



  • Hi, ich habe nen Problem mit der If-Schleife.
    Hier mein Code.

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int zahl1;
        int zahl2;
        int zahl3;
    
        cout << "Geben sie 3 Zahlen ein\n";
        cin >> zahl1;
        cin >> zahl2;
        cin >> zahl3;
    
        if (zahl1>zahl2 && zahl1>zahl3)
        {
            cout << "Die größte Zahl ist " << zahl1;
            if (zahl2<zahl3)
            {
                cout << "Die kleinste Zahl ist "  << zahl2;
            }
            if (zahl3<zahl2)
            {
                cout << "Die kleinste Zahl ist "  << zahl3;
            }
        }
        if (zahl2>zahl1 && zahl2>zahl3)
        {
            cout << "Die größte Zahl ist " << zahl2;
            if (zahl1<zahl3)
            {
                cout << "Die kleinste Zahl ist "  << zahl1;
            }
            if (zahl3<zahl1)
            {
                cout << "Die kleinste Zahl ist "  << zahl3;
            }
            if (zahl3>zahl1 && zahl3>zahl2)
        {
            cout << "Die größte Zahl ist " << zahl3;
            if (zahl1<zahl2)
            {
                cout << "Die kleinste Zahl ist "  << zahl1;
            }
            if (zahl2<zahl1)
            {
                cout << "Die kleinste Zahl ist "  << zahl2;
            }
        }
        }
    }
    

    Der funktioniert aber nicht richtig, immer wenn ich ihn ausführeund die 3 Zahlen eingebe kommt nichts mehr also es wird nicht berechnet welche die kleinste und welche die größte Zahl ist.



  • ●ROBBY&#967 schrieb:

    Hi, ich habe nen Problem mit der If-Schleife.

    Das Problem ist, dass "if" keine Schleife erzeugt.

    Hier mein Code. [...]

    schau mal die Einrückung und die schließenden Klammern an, dann fällt dir vielleicht auf, dass der dritte if-Block("(zahl3>zahl1 && zahl3>zahl2)") IM zweiten ist statt dahinter.

    Deine Fehlerbeschreibung ist übrigens nicht ganz richtig - wenn die erste oder zweite Zahl die größte ist sollte es funktionieren.

    Du hast außerdem noch einen logischen Fehler drin: was passiert wenn zwei Zahlen gleich groß sind?



  • Hi,

    könnte auch das "2. Wenn ich mein Programm ausführe, passiert gar nichts/flackert nur kurz was auf! Wieso?"-Problem sein, das gut im Thread Die meistgestellten Fragen beschrieben wird.

    Kannst du einfach testen mit

    #include <iostream>
    
    int main() {
       std::cout << "hallo\n";
    }
    

    ... wenn da auch "nichts passiert", ist der o.g. Thread dein Freund. 😉
    (wobei es sich durchaus auf jeden Fall lohnen dürfte, sich den anzusehen)

    Gruß,

    Simon2.



  • @ pumuckl
    Danke für den Hinweis, habe auch noch nen anderen kleinen Fehler gefunden aber jetzt funktioniert mein Code und sieht so aus

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int zahl1;
        int zahl2;
        int zahl3;
    
        cout << "Geben sie 3 unterschiedlich große Zahlen ein\n";
        cin >> zahl1;
        cin >> zahl2;
        cin >> zahl3;
    
        if (zahl1>zahl2 && zahl1>zahl3)
        {
            cout << "Die größte Zahl ist " << zahl1 << "\n";
            if (zahl2<zahl3)
            {
                cout << "Die kleinste Zahl ist "  << zahl2 << "\n";
            }
            if (zahl3<zahl2)
            {
                cout << "Die kleinste Zahl ist "  << zahl3 << "\n";
            }
        }
        if (zahl2>zahl1 && zahl2>zahl3)
        {
            cout << "Die größte Zahl ist " << zahl2 << "\n";
            if (zahl1<zahl3)
            {
                cout << "Die kleinste Zahl ist "  << zahl1 << "\n";
            }
            if (zahl3<zahl1)
            {
                cout << "Die kleinste Zahl ist "  << zahl3 << "\n";
            }
        }
        if (zahl3>zahl1 && zahl3>zahl2)
        {
            cout << "Die größte Zahl ist " << zahl3 << "\n";
            if (zahl1<zahl2)
            {
                cout << "Die kleinste Zahl ist "  << zahl1 << "\n";
            }
            if (zahl2<zahl1)
            {
                cout << "Die kleinste Zahl ist "  << zahl2 << "\n";
            }
        }
    }
    

    @simon2 Dass problem kenne ich aber dass kommt bei mir nur wenn ich die Exe starte und wenn ich es aud der IDE herraus starte kommt das nicht.

    Btw. wisst ihr wie man ö,ä,ü und ß benutzen kann?



  • ●ROBBY&#967 schrieb:

    Btw. wisst ihr wie man ö,ä,ü und ß benutzen kann?

    Ohne weiteres garnicht. Im normalen C++ Zeichensatz sind die nicht enthalten. Wenn du mit sowas arbeiten willst gehts dann Richtung wchar_t, locales, codepages,... alles recht kompliziertes z.T. Plattformabhängiges Gefrickel



  • pumuckl schrieb:

    ●ROBBY&#967 schrieb:

    Btw. wisst ihr wie man ö,ä,ü und ß benutzen kann?

    Ohne weiteres garnicht. Im normalen C++ Zeichensatz sind die nicht enthalten. Wenn du mit sowas arbeiten willst gehts dann Richtung wchar_t, locales, codepages,... alles recht kompliziertes z.T. Plattformabhängiges Gefrickel

    Ok, danke. Dannw werde ich wohl erstmal damit leben müssen.



  • If



  • FreakY<3Cpp schrieb:

    If

    Ich weiß, hat pumuckl ja auch schon geschrieben.


Anmelden zum Antworten