/ Forside/ Teknologi / Udvikling / C/C++ / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
tilfældigt tal i C
Fra : janni_s
Vist : 1143 gange
200 point
Dato : 29-10-09 14:18

Jeg er ved at lave en regnetræningsprogram i C og skal bruge 2 tilfældige tal. Jeg har gjort følgende:

srand(time (NULL));   

int tal1,tal2;

tal1 = (time (NULL));
   
tal2 = (time (NULL));


Men tal1 og tal2 bliver ens hver gang jeg kører programmet. Hvordan kan jeg undgå det?

Vh

 
 
Accepteret svar
Fra : Klaudi

Modtaget 210 point
Dato : 29-10-09 14:55

Kode
/* srand example */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ()
{
printf ("First number: %d\n", rand() % 100);
srand ( time(NULL) );
printf ("Random number: %d\n", rand() % 100);
srand ( 1 );
printf ("Again the first number: %d\n", rand() %100);

return 0;
}


Kilde:
http://www.cplusplus.com/reference/clibrary/cstdlib/srand/


Kommentar
Fra : janni_s


Dato : 29-10-09 15:20

jeg får stadig bare 41 for første tal hver gang. Der skal bruges forskellige tal hver gang, for det er til forskellige regneopgaver, hvor der f.eks kommer 10 opgaver i træk..

Kommentar
Fra : fun2


Dato : 29-10-09 16:25

I Klaudis eksempel vil det første tal altid være det samme, det er trukket inden srand er kaldt.
Det andet tal bør være tilfældig.

Prøv:
srand ( time(NULL) );
printf ("Random number: %d\n", rand() % 100);
printf ("Random number: %d\n", rand() % 100);
printf ("Random number: %d\n", rand() % 100);

Det bør give 3 tilfældige tal mellem 0 og 99, begge inklusive.

Kommentar
Fra : Klaudi


Dato : 29-10-09 16:31

Lidt mere her

Citat
Explanation: Srand will seed the random number generator to prevent random numbers from being the same every time the program is executed and to allow more pseudorandomness.

http://www.cprogramming.com/fod/srand.html

Godkendelse af svar
Fra : janni_s


Dato : 03-11-09 10:44

Tak for svaret Klaudi.

Kommentar
Fra : Klaudi


Dato : 03-11-09 18:17

Velbekommen

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste