PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Zufallszahl begrenz erzeugen



nul
22-05-2003, 18:37
Ist das möglich?
Ich möchte mit C eine Zufallszahl innerhalb eines bestimmten Bereichs (Bsp. zwischen 0 und 100) erzeugen.

#include <stdio.h>
#include <stdlib.h>

int zahl;


int main(void)
{

zahl = srand();

printf("%d\n", zahl);


return 0;

Hab ich probiert, aber bei dedem Aufruf kommt die Selbe Zahl heraus und ich weiß nicht wie ich die Zufallszahl begrenzen kann.

mfg nul

nul
22-05-2003, 18:43
Tschuldigung, nicht srand(), rand() wollte ich schreiben, also hier noch mal der kurze Code:

#include <stdio.h>
#include <stdlib.h>

int zahl;


int main(void)
{

zahl = rand();

printf("%d\n", zahl);


return 0;
}

peschmae
22-05-2003, 18:48
Zufallszahlen sind immer zwischen 0 und 1

also noch *100 rechnen, oder sowas ähnliches

MfG Peschmä

anda_skoa
22-05-2003, 18:49
Original geschrieben von nul
Hab ich probiert, aber bei dedem Aufruf kommt die Selbe Zahl heraus und ich weiß nicht wie ich die Zufallszahl begrenzen kann.


Der Random Generator wird hier immer mit dem selben Seed initialisiert, daher bekommst du die selben Zufallszahlen.

Wenn du mehrere hintereinander ausgibs, bekommst du zufällige Werte.
Wie das Begrenzen geht, steht in der Man Page von rand
man 3 rand

Ciao,
_

anda_skoa
22-05-2003, 18:51
Original geschrieben von peschmae
Zufallszahlen sind immer zwischen 0 und 1


Nope :)



RETURN VALUE
The rand() function returns a value between 0 and RAND_MAX. The
srand() returns no value.


Ciao,
_

peschmae
22-05-2003, 19:05
tja, sachen gibst :D

das hab ich von java ... (<- hoffentlich stimmt wenigstens das ;-))

MfG Peschmä

nul
22-05-2003, 19:17
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int j;
int x;


int main(void)
{

srand( (unsigned) time(NULL) );
j = 1+(int) (10.0*rand()/(RAND_MAX+1.0));
printf("%d\n", j);

srand( (unsigned) time(NULL) );
x = 1+(int) (10.0*rand()/(RAND_MAX+1.0));
printf("%d\n", x);


return 0;
}

soweit hab ichs gebracht, aber wie ihr sicher gleich seht gibt mir dieser code 2mal die gleiche Zahl aus. Ich muss aber in einer einzigen Funktion mindestens 5 Zufallszahlen generieren.
Wie bekomm ich das hin???

anda_skoa
22-05-2003, 19:25
lass das zweite srand weg

Ciao,
_

nul
22-05-2003, 19:29
super, Danke, jetzt passts

mfg nul