Newbie hat Probleme mit Zufallszahlen
-
Guten Abend die Herrschaften

Ich habe vor ein paar Tagen angefangen mir C++ beizubringen.
jetzt habe ich ein Programm zur Bestimmung von Zufallszahlen geschrieben.
Das Programm an sich läuft auch Fehlerfrei...einziges Problem:
Er bringt mir jedesmal dieselbe Zufallszahl, auch wenn ich die *.exe
neugestartet habe.
kann es mir leider nicht erklären
hier der Quelltext:
#include <iostream> #include <stdlib.h> using namespace std; int main() { int Eingabe(0); int Zufall(0); srand(4); Zufall = rand() % 1000 + 1; do { cout << "Eine Zahl zwischen 1 und 1000!" << endl; cin >> Eingabe; if(Eingabe < Zufall) cout << "zu klein" << endl; if(Eingabe > Zufall) cout << "zu groß" << endl; } while(Eingabe != Zufall); cout << "Richtig!" << endl; }was ist daran falsch? Vielen Dank schonmal
gruß tridane
-
An std::srand übergibt man normalerweise die aktuelle Uhrzeit, also std::time(NULL).
Genauere Informationen dazu gibt es im Magazin, dort gibt es einen Artikel zum Thema Zufallszahlen.
-
rand() benutzt einen pseudo Logarithmus, der auf jedem PC gleich ist! Daher kommt immer die gleiche Zahl!
Ich schreib dir fix den Sourcecode... gib mri ein paar Minuten!
-----------------------------------------------------------------------------------
#include <cstdlib> #include <iostream> #include <time.h> using namespace std; int main() { srand ( time(NULL) ); int zufall = rand() % 10 + 1; cout << "Zufallszahl: " << zufall << endl; system ("PAUSE"); return 0; }Jetzt kommen immer andere Zahlen von 1 - 10
Wenn du dies noch in eine Schleife legst müsste alles so passen wie du das wolltest!
Gruß aus Leipzig!
-
Hi tridane,
hier nen sehr schöner Artikel zum Thema "Zufallszahlen":
http://www.c-plusplus.net/forum/viewtopic-var-t-is-172876.html
-
Crew06ZW schrieb:
pseudo Logarithmus

-
ok vielen Dank funktioniert jetzt alles

-
Könntest du eventl. den kompletten Sourcecode zur vollständigkeit dieses Themas noch hineinstellen?!
Wenn später mal jemand etwas such, hat er so ein komplettes Beispiel... wäre sicher sinnvoll!