Random funktioniert nicht - Erhalte immer die selben Werte
-
Hallo,
ich habe ein kleines Problem mit der Random() Funktion und zwar erhalte ich immer die selben Werte:#include <stdio.h> #include <stdlib.h> #include <windows.h> int main(int argc, char *argv[]) { int zahl; int a = 20; //maximal int b = 0; //minimal zahl = b + rand() % (a - b); printf ("Zufallszahl: %d\n",zahl); system("PAUSE"); return 0; }
Was mache ich den verkehrt?
-
-
du musst mittels man: srand(3) den Pseudozufallszahlengenerator erst initialisieren.
-
Habe jetzt mal die Funktion srand benutzt bekomme aber noch die gleichen Ergebnise raus.
-
initialisieren heißt soviel wie "einmal am anfang".
-
Random() schrieb:
Habe jetzt mal die Funktion srand benutzt bekomme aber noch die gleichen Ergebnise raus.
Dann hast du den Sinn von srand() bzw. wie rand() überhaupt arbeitet wohl nicht verstanden. Lies dir mal den von rnd verlinkten Artikel gazn durch
-
Ah ok danke,der Artikel hat mir echt sehr weitergeholfen.
Also das Thema kann eigentlich geschlossen werden.
-
Doch leider erhalte ich immer einen Fehler bei folgender Zeile:
srand(static_cast<int>(time(NULL)));
Folgender Fehler:
main.cpp: In function `int main(int, char**)':
main.cpp:12: error: `time' undeclared (first use this function)
main.cpp:12: error: (Each undeclared identifier is reported only once for each function it appears in.)make.exe: *** [main.o] Error 1
?????
-
Ganz einfach, du hast wohl den Header <time.h> nicht eingebunden, daher kannst du die Funktion time() nicht nutzen.
Gruß, U-Boot
-
Desweiteren wird der C++-Cast in ANSI C nicht funktionieren