Einzelnen Beitrag anzeigen
Ungelesen 13.09.09, 00:32   #1
Underkane
Ist öfter hier
 
Benutzerbild von Underkane
 
Registriert seit: Aug 2008
Beiträge: 232
Bedankt: 26
Underkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt PunkteUnderkane leckt gerne myGully Deckel in der Kanalisation! | 1630841 Respekt Punkte
Standard [C++] Hilfe bei Zahlenraten

Hallo,
ich habe mich mal an C++ gewagt habe mich an ein erstes Spiel gecodet.
Es klappt auch fast alles, aber mir fällt folgendes auf.

7 soll die Zahl sein, bei der die Meldung "Richtig" erscheinen soll.
NUR (!) bei der 7.
Wenn ich allerdings eine Zahl > 7 eingebe und darauffolgend eine Zahl < 7 eingebe, kommt trotzdem die "Richtig" Meldung, was nicht sein sollte/dürfte.

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout << "Hallo! "; //Begrüßung Anfang
    cout << "Ich will mit dir ein Spiel spielen." << endl;
    cout << "Ich denke mir eine Zahl zwischen 1 und 10. " << endl;
    cout << "Du musst herauszufinden, welche Zahl ich mir gedacht habe." << endl;
    cout << "Los geht's! Du hast 11 Versuche! *grins*" << endl; //Begrüßung Ende
    cout << "" << endl; //Leere Zeile
    cout << "(c) by Andreas Schmidt" << endl;
    cout << "" << endl; //Leere Zeile
    
    int zahl = 7;
    
    cout << "Welche Zahl habe ich mir gedacht? ";
    cin >> zahl;
    
    while(zahl < 7) //zahl ungleich 7
    {
               cout << "" << endl; //leere zeile
               cout << "Das ist leider nicht richtig. Meine Zahl ist gr\224\341er. " << endl; //meldung
               cout << "Versuch' es nochmal. Gib eine Zahl ein: "; 
               cin >> zahl; //neue zahl
    }
    
    while(zahl > 7) //zahl ungleich 7
    {
               cout << "" << endl; //leere zeile
               cout << "Das ist leider nicht richtig. Meine Zahl ist kleiner. " << endl; //meldung
               cout << "Versuch' es nochmal. Gib eine Zahl ein: ";
               cin >> zahl; //neue zahl
    }
    
    if(zahl == 7); //zahl gleich 7
    {
            cout << "" << endl; //leere zeile
            cout << "Richtig! " << endl; //lob
            cout << "" << endl; //leere zeile
            system("PAUSE"); //schließen
            return EXIT_SUCCESS;
    }
}
Bei diesem Code hält es sich bisschen länger.
Ich gebe eine Zahl < 7 ein, dann eine Zahl > 7 und dann nochmal eine Zahl < 7.
Dann erscheint trotzdem die "Richtig" Meldung.

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout << "Hallo! "; //Begrüßung Anfang
    cout << "Ich will mit dir ein Spiel spielen." << endl;
    cout << "Ich denke mir eine Zahl zwischen 1 und 10. " << endl;
    cout << "Du musst herauszufinden, welche Zahl ich mir gedacht habe." << endl;
    cout << "Los geht's! Du hast 11 Versuche! *grins*" << endl; //Begrüßung Ende
    cout << "" << endl; //Leere Zeile
    cout << "(c) by Andreas Schmidt" << endl;
    cout << "" << endl; //Leere Zeile
    
    int zahl = 7;
    
    cout << "Welche Zahl habe ich mir gedacht? ";
    cin >> zahl;
    
    do //zahl ungleich 7
    {
               cout << "" << endl; //leere zeile
               cout << "Das ist leider nicht richtig. Meine Zahl ist gr\224\341er. " << endl; //meldung
               cout << "Versuch' es nochmal. Gib eine Zahl ein: "; 
               cin >> zahl; //neue zahl
    } while(zahl < 7);
    
    do //zahl ungleich 7
    {
               cout << "" << endl; //leere zeile
               cout << "Das ist leider nicht richtig. Meine Zahl ist kleiner. " << endl; //meldung
               cout << "Versuch' es nochmal. Gib eine Zahl ein: ";
               cin >> zahl; //neue zahl
    } while(zahl > 7);
    
    if(zahl == 7); //zahl gleich 7
    {
            cout << "" << endl; //leere zeile
            cout << "Richtig! " << endl; //lob
            cout << "" << endl; //leere zeile
            system("PAUSE"); //schließen
            return EXIT_SUCCESS;
    }
}
Weiß jemand was ich falsch mache und wie ich es ausbessern kann?

mfg
Underkane

//Edit:
Wenn ich 7 gleich am Anfang eingebe, bekomme ich trotzdem eine "Falsch" Meldung.
Und ich wüsste gerne, wie ich eine Zahl zwischen 1 und 10 automatisch (zufällig) generieren lasse, damit sie sich jedes mal ändert.
__________________
Underkane ist offline   Mit Zitat antworten