Newbie,weiss net was für titel ich schreiben soll....



  • Hi,
    zu aller erst Entschuldige ich mich für den Misslungenen Thread Titel, aber ich wusste nicht wie ich das problem kurz ausschreiben sollte als Überschrift 😕

    Meine Syntax:

    #include <iostream>
    #include <conio.h> /*nicht standartgemäß musste aber sein da sonst die konsole sofort schließt wenn ich letzte eingabe mit enter bestätige und std::cin.get() da auch nicht helfen konnte */
    using namespace std;
    
    int main(){
        cout << "Hi, dieses Programm berechnet den Altersunterschied\n";
        int a, b;
        cout << "Wie alt sind Sie?\n";
        cin >> a;
        cout << "und wie alt ist Ihre Freundin?\n";
        cin >> b;
        if (a < b);
        cout << "Sie sind also" << b-a << " Jahre juenger als Ihre Freundin" <<endl;
        cout << "\n";
        cout << " sie sind nicht aelter als Ihre Freundin\n";
        if (a > b);
        cout << "Sie sind also" << a-b << "Jahre aelter als Ihre Freundin" <<endl;
        cout << "\n";
        if (a == b);
        cout << "Sie sind also genau so alt wie Ihre Freundin" <<endl;
        getch();
        return 0;
    }
    

    Mein Problem ist, dass das fertig Compilierte Programm am ende con eingabe a und b alle drei antworten ausgibt (also sowohl für < und > als auch für ==)

    woran liegt das und was kann ich tun damit es nur die entsprechende Antwort berechnet und ausgibt???

    Ich bedankte mich vorab für eure hilfe, wäre auch dankbar wenn ihr mir einen tipp geben würdet wonach ich eigentlich suchen muss um an die Lösung zu kommen

    Hochachtungsvoll
    Snakek1



  • Hey, du führst mit deinen ifs leere Anweisungen aus:

    if (true); // << Dieses ";" muss weg, damit beim if etwas ausgefürhrt wird.
    

    So muss das aussehen:

    Snakek1 schrieb:

    #include <iostream>
    #include <conio.h> /*nicht standartgemäß musste aber sein da sonst die konsole sofort schließt wenn ich letzte eingabe mit enter bestätige und std::cin.get() da auch nicht helfen konnte */
    using namespace std;
    
    int main(){
        cout << "Hi, dieses Programm berechnet den Altersunterschied\n";
        int a, b;
        cout << "Wie alt sind Sie?\n";
        cin >> a;
        cout << "und wie alt ist Ihre Freundin?\n";
        cin >> b;
        if (a < b)
        {
            cout << "Sie sind also" << b-a << " Jahre juenger als Ihre Freundin" <<endl;
            cout << "\n";
            cout << " sie sind nicht aelter als Ihre Freundin\n";
        }
        else if (a > b)
        {
            cout << "Sie sind also" << a-b << "Jahre aelter als Ihre Freundin" <<endl;
            cout << "\n";
        }
        else
            cout << "Sie sind also genau so alt wie Ihre Freundin" <<endl;
        getch();
        return 0;
    }
    

    mfg 😉



  • Super vielen dank das heißt also das ; schließt die handlung sozusagen ab oder wie war das zu verstehen?



  • Ja.
    An jede Zeilen Ende bzw. nach jedem Befehl muss so etwas stehen, wie du bereits gemerkt hast 😉
    Dient auch als eine Art Trennung zwischen den einzelnen Befehlen.



  • ahhh dank dir jetzt wird das ganze auch etwas logischer warum es gar net funktionieren konnte 🙂

    big thanks an euch beide 😃

    Hochachtungsvoll
    Snakek1



  • Kein Problem und lass dieses Hochachtungsvoll weg 🤡



  • ich knüpf mal an die erste newbie frage an
    also bin ein umsteiger von java und hab mir das buch (vielleicht kennst es jemand) "c++ von E.-w.Dietrich" geholt hab da raus viel gelernt aber was mich nerft das da immer wieder alte header verwendet werden! gibt es irgend wo eine liste von den 32 standart ansi headern oder so


Anmelden zum Antworten