gerade&ungerade Zahl



  • Hallo!

    ich bin neu im C++ Game und daher ein totaler Anfänger. Im Rahmen des Studiums muss ich mir C++ aneignen und habe daher viele Fragen und hoffe hier auf Hilfe 🙂

    Schreibe ein Programm, das eine int Zahl einliest. Das Programm soll je
    nach eingegebenem Wert „positiv“, „null“, oder „negativ“ ausgeben.
    In Ergänzung zu vorigen Aufgabe soll das Programm auch „gerade“ oder
    „ungerade“

    Der erste Teil ist soweit klar, aber wir mache ich das mit dem "gerade&ungerde?

    Grüße

    #include <iostream>

    using namespace std;

    int main()

    { int Zahl; // zu prüfende Zahl
    cout << "Bitte Zahl eingeben" << endl;
    cin >> Zahl;

        if (Zahl < 0)
        {cout << "Zahl ist negativ"<< endl;}
    
            else
        {cout << "Zahl ist positiv" << endl;}
    

    return 0;
    }


  • Mod

    Null ist bei dir positiv.

    Für gerade/ungerade: Der Modulo-Operator % gibt dir den Rest einer Division an (also z.B. 14 % 4 ist 2). Damit überleg dir mal was.



  • Moin SeppJ,

    Danke für die Rückmeldung.
    Ich habe folgenden Lösungsansatz.
    Leider funktioniert es noch nicht.
    Geht das in die richtige Richtung?

    Grüße

    #include <iostream>

    using namespace std;

    int main()

    { int Zahl; // zu prüfende Zahl

        cout << "Bitte Zahl eingeben" << endl;
        cin >> Zahl;
    
        if (Zahl%2)
        {cout << "Zahl ist gerade"<< endl; }
    
        if (Zahl%2-1)
        {cout << "Zahl ist ungerade" endl;}
    
        if (Zahl < 0)
        {cout << "Zahl ist negativ"<< endl;}
    
        if (Zahl > 0)
        {cout << "Zahl ist positiv" << endl;}
    

    return 0;
    }



  • @Kristian sagte in gerade&ungerade Zahl:

    funktioniert es noch nicht

    Bedeutet was?

    Wenn eine Zahl nicht gerade ist, was ist sie dann?



  • Modulo 2 ist schon mal richtig, bei Zahlen würde ich allerdings die implizite bool-Konvertierung benutzen. Sachen wie if( Zahl%2 -1 ) finde ich fürchterlich. Außerdem lassen sich manche Überprüfungen in if-else if-else Kontrollblöcke zusammenfassen.



  • Danke für die Rückmeldungen.

    Ich bekomme die Fehlermeldung "Else without a previous if"

    Leider finde ich dazu nichts:/

    Grüße

    #include <iostream>

    using namespace std;

    int main()

    { int Zahl; // zu prüfende Zahl

        cout << "Bitte Zahl eingeben" <<  endl;
        cin >> Zahl;
    
        if (Zahl%2-1);
        {cout << "Zahl ist ungerade"<<    endl;}
            else;
            {cout << "Zahl ist gerade"<<  endl;}
    
        if (Zahl < 0);
        {cout << "Zahl ist negativ"<<     endl;}
    
        if (Zahl > 0);
        {cout << "Zahl ist positiv" <<    endl;}
    

    return 0;
    }



  • Nicht hinter jede Zeile gehört ein Semikolon. Besonders fatal bei Kontrollstrukturen.



  • es funktioniert.

    Danke euch 🙂

    #include <iostream>

    using namespace std;

    int main()

    { int Zahl; // zu prüfende Zahl

        cout << "Bitte Zahl eingeben" <<  endl;
        cin >> Zahl;
    
        if (Zahl%2)
        {cout << "Zahl ist ungerade"<<    endl;}
            else
            {cout << "Zahl ist gerade"<<  endl;}
    
        if (Zahl < 0)
        {cout << "Zahl ist negativ"<<     endl;}
    
        if (Zahl > 0)
        {cout << "Zahl ist positiv" <<    endl;}
    

    return 0;
    }



  • @Kristian Schreib' bitte in Zukunft in eine Zeile vor Deinem Code ``` und in eine Zeile nach Deinem Code ```. Alternativ markiere Deinen Code und klicke auf das </> in der Toolbar über dem Textfeld.
    Du kannst Deine Beiträge auch im Nachhinein noch bearbeiten. Den Menüpunkt "Bearbeiten" findest Du hinter dem Drei-Punkte-Menü rechts unter Deinen Beiträgen.
    Danke.


Anmelden zum Antworten