Jackpot festlegen
-
unsigned int uiJackpot=1000000; srand(uiJackpot); printf("\nLottogenerator\n"); printf("%i EURO im Jackpot!\n\n",uiJackpot);
-
srand() setzt den Startwert für den Algorithmus hinter rand(). Also muss srand() logischerweise vor rand() _einmalig_ ausgeführt werden. Die eigentlichen Zufallszahlen werden nur mit rand() generiert. Als Startwert (seed genannt) bietet sich z.B. die aktuelle Zeit an. Dazu nimmt man z.B. die Funktion time() aus der time.h. Code gibt's nicht.
-
int iJackpot; srand((unsigned)time(NULL)); for(int i=0;i<1;i++) iJackpot=rand()%39000001+1000000; printf("\nLottogenerator\n"); printf("%i EURO im Jackpot!\n\n",iJackpot);
Ich bekomme immer ne Zahl kanpp über einer Million.
-
Ist es denn immer dieselbe Zahl?
PS: Was soll diese for-"Schleife"?
-
Es ist nicht immer die gleich eZahl, aber leider nur eine gute 1 Million.
int iJackpot; srand((unsigned)time(NULL)); iJackpot=rand()%39000001+1000000; printf("\nLottogenerator\n"); printf("%i EURO im Jackpot!\n\n",iJackpot);
-
rand() hat nun mal einen kleinen bereich von RAND_MAX.
-
Hab das jetzt so gemacht, Problem ist bloß, dass ich für die Gewinnausschüttung den Jackpot brauche und da ja nur 1Million bis 40 Millionen habe oder die Nullstellen.
int iJackpot; int iJackpot_l=1; int iJackpot_h=30; srand((unsigned)time(NULL)); //Start fuer Zufall iJackpot=iJackpot_l+(rand()%(iJackpot_h-iJackpot_l+1)); printf("\nLottogenerator\n"); if(iJackpot==1) { printf("%i Million EURO im Jackpot!\n\n",iJackpot); } else printf("%i Millionen EURO im Jackpot!\n\n",iJackpot);
-
hast du mich verstanden?
rand() erzeugt zahlen, die hoechstens RAND_MAX sind.
das bedeutet, dass du somit einen zufallswert zwischen 0 und 1 bekommen kannst:
double wert = (double)rand() / RAND_MAX;
-
was das für ne schwachfugige if-Anweisung?
-
int iJackpot; int iJackpot_l=1; int iJackpot_h=30; iJackpot=iJackpot_l+(rand()%(iJackpot_h-iJackpot_l+1));
Wieso soll da was zwischen 0 und 1 rauskommen?
-
stellst du dich mit absicht dumm?
c.rackwitz schrieb:
hast du mich verstanden?
rand() erzeugt zahlen, die hoechstens RAND_MAX sind.
das bedeutet, dass du somit einen zufallswert zwischen 0 und 1 bekommen kannst:
double wert = (double)rand() / RAND_MAX;
soll heissen, dass du mit dem code, den ich bereits gepostet habe, einen wert zwischen 0 und 1 bekommst.
desweiteren sagte ich mehrmals (ohne erfolg), dass rand() etwas zwischen 0 und RAND_MAX zurueckgibt.
-
Dann ist ja alles geklärt.
Bei mir passt alles.Gruß