flashbrain
Mitglied
Schon wieder muß ich ein Problem lösen das mich etwas überfordert... Die Aufgabe lautet folgendermaßen:
Zahlen raten:
Erstellen Sie ein C++-Programm, in welchem eine vom Computer erzeugte Zufallszahl erraten werden soll. Für das Erzeugen der Zufallszahl sind in Ihrem Programm zunächst die Bibliotheken time.h und stdlib.h mittels #include einzubinden. Initialisieren Sie dann in Ihrem Hauptprogramm den Zufallsgenerator mittels des Befehls srand((unsigned int) time(NULL)); Eine positive, ganzzahlige Zufallszahl p aus der Menge f1; 2; : : : ; qg kann dann durch den Befehl int p=1+rand()%q erzeugt werden. Erzeugen Sie eine Zufallszahl zwischen 1 und 1000. Fragen Sie den Benutzer, in wievielen Versuchen er die gesuchte Zahl erraten will. Lesen Sie diesen Wert in eine Variable int versuche ein. Lesen Sie dann weiter in einer for-Schleife für i = 1; : : : ;versuche die geratenen Zahlen ein und vergleichen Sie die geratene Zahl in jedem Durchlauf mit der zu erratenen Zahl. Geben Sie auf dem Bildschirm eine Meldung aus, ob die geratene Zahl zu klein oder zu gro¼ ist. Informieren Sie den Rater, falls er die richtige Zahl erraten hat. Setzen Sie in diesem Fall die Variable versuche auf Null, um den Schleifendurchlauf abzubrechen. Erteilen Sie dem Rater ein entsprechendes Lob. Wird die gesuchte Zahl innerhalb der vorgegebenen Anzahl von Versuchen nicht erraten, so ist dem Benutzer mitzuteilen, welche Zahl gesucht war. Sprechen Sie Mut für ein erneutes Spiel zu.
Die Aufgabe soll denk ich dazu dienen for Schleifen zu üben... und mein Programm, das leider nicht funktionniert sieht folgendermaßen aus:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main ()
{
int p = 1 + rand () % 1000, n, i, a;
cout << "Geben Sie ein wieviele Versuche Sie haben wollen, um eine Zufallszahl zwischen 1 und 1000 zu erraten!" <<endl;}
cin >> n;
for ( i = 1; i = n; i++)
{
cout << "Geben Sie eine Zahl zwischen 1 und 1000 ein!" << endl;
cin >> a;
if (a > p) {cout << "Die gesuchte Zahl ist kleiner" << endl;}
if (a < p) {cout << "Die gesuchte Zahl ist größer" << endl;}
if (a = p) {cout << "Herzlichen Glückwunsch! Sie haben die Zahl erraten"; n=0;}
if (i > n) {cout << " Sie haben die maximale Anzahl an Versuchen erreicht. Die gesuchte Zahl lautet: " << p << "! Versuchen Sie es doch gleich noch einmal." << endl;}
}
return 0;
}
Kann mir jemand sagen was ich da falsch gemacht hab?
Zahlen raten:
Erstellen Sie ein C++-Programm, in welchem eine vom Computer erzeugte Zufallszahl erraten werden soll. Für das Erzeugen der Zufallszahl sind in Ihrem Programm zunächst die Bibliotheken time.h und stdlib.h mittels #include einzubinden. Initialisieren Sie dann in Ihrem Hauptprogramm den Zufallsgenerator mittels des Befehls srand((unsigned int) time(NULL)); Eine positive, ganzzahlige Zufallszahl p aus der Menge f1; 2; : : : ; qg kann dann durch den Befehl int p=1+rand()%q erzeugt werden. Erzeugen Sie eine Zufallszahl zwischen 1 und 1000. Fragen Sie den Benutzer, in wievielen Versuchen er die gesuchte Zahl erraten will. Lesen Sie diesen Wert in eine Variable int versuche ein. Lesen Sie dann weiter in einer for-Schleife für i = 1; : : : ;versuche die geratenen Zahlen ein und vergleichen Sie die geratene Zahl in jedem Durchlauf mit der zu erratenen Zahl. Geben Sie auf dem Bildschirm eine Meldung aus, ob die geratene Zahl zu klein oder zu gro¼ ist. Informieren Sie den Rater, falls er die richtige Zahl erraten hat. Setzen Sie in diesem Fall die Variable versuche auf Null, um den Schleifendurchlauf abzubrechen. Erteilen Sie dem Rater ein entsprechendes Lob. Wird die gesuchte Zahl innerhalb der vorgegebenen Anzahl von Versuchen nicht erraten, so ist dem Benutzer mitzuteilen, welche Zahl gesucht war. Sprechen Sie Mut für ein erneutes Spiel zu.
Die Aufgabe soll denk ich dazu dienen for Schleifen zu üben... und mein Programm, das leider nicht funktionniert sieht folgendermaßen aus:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main ()
{
int p = 1 + rand () % 1000, n, i, a;
cout << "Geben Sie ein wieviele Versuche Sie haben wollen, um eine Zufallszahl zwischen 1 und 1000 zu erraten!" <<endl;}
cin >> n;
for ( i = 1; i = n; i++)
{
cout << "Geben Sie eine Zahl zwischen 1 und 1000 ein!" << endl;
cin >> a;
if (a > p) {cout << "Die gesuchte Zahl ist kleiner" << endl;}
if (a < p) {cout << "Die gesuchte Zahl ist größer" << endl;}
if (a = p) {cout << "Herzlichen Glückwunsch! Sie haben die Zahl erraten"; n=0;}
if (i > n) {cout << " Sie haben die maximale Anzahl an Versuchen erreicht. Die gesuchte Zahl lautet: " << p << "! Versuchen Sie es doch gleich noch einmal." << endl;}
}
return 0;
}
Kann mir jemand sagen was ich da falsch gemacht hab?