Dopo aver inizializzato il generatore di numeri casuali con srand usa questa funzione che ho scritto:
codice:
int nrand(int min, int max)
{
max-=min;
if (max<=RAND_MAX)
return (rand()%max)+min;
else
return ((int)((double)rand()/(double)max*RAND_MAX))+min;
}
; min e max sono ovviamente i due estremi della gamma di valori che vuoi ottenere.
Se non lavori con numeri molto grossi in realtà di solito è sufficiente usare
codice:
int tuoValore;
tuoValore=(rand()%(max-min))+min
//o, se il minimo è 0
tuoValore=rand()%max;
.
Quanto alla selezione di un numero compreso in un insieme basta fare così:
codice:
int nrange[]={3,98,27,5,13}; //l'insieme in cui sono contenuti i numeri da estrarre
int tuoValore=nrange[rand()%(sizeof(nrange)/sizeof(int))];
.