Wer sieht den Fehler | Random Funktion...
-
Hallo!
musste mich nach einer laaangen c++Pause mal wieder mit dieser "wunderschönen" Programmiersprache beschäftigen. Und da es wahrscheinlich so schwer war mal eine funktionierende RandomFunktion in die Standardbibliothek aufzunehmen bzw zu implementieren so wie es in den nach Chr. Sprachen gemacht wurde, muss man halt mit Hilfe von Google nach einer Lösung suchen. Habe auch gefunden nur leider funktioniert das nicht so wie ichs gern hätte
int random(){ srand((unsigned)time(NULL) ); int random_integer = (rand() % 100) +1; return random_integer; }beim aufruf in main
int main(){ int a = random(); int b = random(); //... }bekomme ich immer a = b
Könnte mal bitte jemand erklären warum??Danke schon mal!
-
Du sollst srand() nur am Programmstart aufrufen.
-
Es gibt vermutlich geschicktere Arten zu fragen als erstmal über die Sprache zu lästern.

Seede nur einmal:#include <time.h> #include <stdlib.h> #include <stdio.h> #include <iostream> int random2(){ int random_integer = (rand() % 100) +1; return random_integer; } int main(){ srand((unsigned)time(NULL) ); int a = random2(); int b = random2(); std::cout << a << " " << b << std::endl; return 0; }
-
@Dobi Dein Code ist nicht standardkonform. Zudem ist
<cstdio>und der C-Cast unnötig...
-
<cstdio> seh ich bei mir nich. Die anderen header hab ich von hier übernommen.
http://www.cplusplus.com/reference/clibrary/cstdlib/srand/
Und den C-Cast aus dem Post vom Threadersteller.
-
Dobi schrieb:
<cstdio> seh ich bei mir nich.
<cstdio>ist die korrekte Version von<stdio.h>. Und das auf der Website ist C-Code.
@Topic Sieh dir malboost::randoman.
-
So besser?
#include <cstdlib> #include <ctime> #include <iostream> int random2() { return rand() % 100 + 1; } using namespace std; int main() { srand( time( 0 ) ); int a = random2(); int b = random2(); cout << a << " " << b << endl; return 0; }
-
Dobi schrieb:
So besser?
Ja.
-
Dobi schrieb:
Es gibt vermutlich geschicktere Arten zu fragen als erstmal über die Sprache zu lästern.

war nicht böse gemeint
:p