Einzelnen Beitrag anzeigen
Alt 06.11.2004, 13:48   #3 (permalink)
Jlagreen
Extrem Tweaker
 
Benutzerbild von Jlagreen
 

Registriert seit: 19.10.2004
Beiträge: 2.955

Jlagreen ist einfach richtig nettJlagreen ist einfach richtig nettJlagreen ist einfach richtig nettJlagreen ist einfach richtig nett

Standard

Zitat:
Zitat von Anonymous
Stell mal meinen Code rein, den ich bis jetzt geschafft habe, aber er spuckt als Zufallszahl immer nur die 1 raus?

int Zufallszahl(int n)
{
/*
int zufall=(double(srand(time(NULL)))/RAND_MAX )*n;
*/
srand(time(NULL));
int zufall=rand()%n;
cout<<"Zufall rand()="<<zufall<<endl;
if(zufall==0)
{
zufall=1;
return zufall;
}
else
{
return zufall;
};
return 0;
}
wenn du sagst, dass du immer ne 1 als Zufallzahl bekommst, heisst das, dass die 1. if-Abfrage immer erfüllt ist und damit "zufall == 0" ist, da du zufall als modulo von der rand()-zahl und einer Zahl n nimmst und es sehr unwahrscheinlich ist, dass n "zufällig" immer dieselbe Zahl ist, die auch rand() erzeugt, schliesse ich daraus, dass rand() immer auch 0 liefert, da ja 0 % n immer Null liefern wird

leider kenne ich mich mit zufallszahlen nicht so aus, habe sie wenn dann nur unter Delphi verwendet, da allerdings gab es sowas wie ne Initialisierungsfunktion, die du aufrufen musstest, damit die eigentlich rand-funktion auch zufallszahlen ermittelte, sonst kam immer das raus, was du grad beschrieben hast, der grund hierfür war, dass man den Zahlenbereich einschränken konnte und die Initialisierung die Systemzeit ermittelte, kannst ja mal schauen, ob man bei rand() in C sowas auch braucht.
Jlagreen ist offline   Mit Zitat antworten