Come usare function srand () con time.h?

Il mio programma contiene codice che dovrebbe generare un numero intero positivo casuale ogni volta che lo eseguo. Genera numeri casuali ma solo una volta. Dopodiché, quando eseguo lo stesso codice, mi danno gli stessi valori e questo rende il mio codice inutile.

Ho iniziato con la funzione rand , quindi ho usato la funzione srand () con il file di intestazione time.h , ma ancora non funziona correttamente.

#define size 10 for(i=0;i<size;i++) Arr[i] = rand()%size; 

Prima chiamata (casuale):

 6 0 2 0 6 7 5 5 8 6 

Seconda chiamata (casuale ma uguale alla precedente):

 6 0 2 0 6 7 5 5 8 6 

Più tardi ho visitato le domande Stack Overflow e ho letto della funzione srand (), e l’ho usato come:

     #include for(i=0;i<size;i++) Arr[i] = srand(time(NULL)); 

    Prima chiamata:

     -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 

    Seconda chiamata:

     -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 

    Mi sta dando diversi (ma non valori casuali). Ho definito Arr [i] come unsigned int , e ancora ottengo valori negativi.

    Devi chiamare srand() una volta , per randomizzare il seed e poi chiamare rand() nel tuo loop:

     #include  #include  #define size 10 srand(time(NULL)); // randomize seed for(i=0;i 

    Prova a chiamare randomize () prima di rand () per inizializzare il generatore casuale.

    (guarda: srand () – perché chiamarlo solo una volta? )

    Se hai scelto di srand , è una buona idea quindi chiamare rand() almeno una volta prima di usarlo, perché è una specie di generatore primitivo psuedo-orribile. Vedi Domanda di overflow dello stack Perché rand ()% 7 restituisce sempre 0? .

     srand(time(NULL)); rand(); //Now use rand() 

    Se disponibile, random o arc4rand sarebbe meglio.

     #include"stdio.h" #include"conio.h" #include"time.h" void main() { time_t t; int i; srand(time(&t)); for(i=1;i<=10;i++) printf("%c\t",rand()%10); getch(); } 
     #include"stdio.h"//rmv coding for randam number access #include"conio.h" #include"time.h" void main() { time_t t; int rmvivek; srand(time(&t)); rmvivek=1; while(rmvivek<=5) { printf("%c\t",rand()%10); rmvivek++; } getch(); }