PDA

Visualizza la versione completa : [C]Funzione rand()


darth fener
18-02-2009, 16:07
Devo generare in un array dei numeri casuali che però non si devono ripetere, sapete come fare?
P.S. I numeri devono andare da 1 a 90

MItaly
18-02-2009, 16:25
Quanti ne devi generare?

darth fener
18-02-2009, 16:28
Devo generare 90 numeri, che vanno da 1 a 90(devo fare un programma che simula il gioco della tombola)

MItaly
18-02-2009, 16:58
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int arr[90]={0};
int num;
srand(time(NULL));
for(num=0;num<90;num++)
{
int index;
for(index=rand()%90;arr[index]!=0;index=(index+1)%90)
;
arr[index]=num+1;
}
for(num=0;num<90;num++)
printf("%d ",arr[num]);
putchar('\n');
return 0;
}

darth fener
18-02-2009, 17:38
ok, ho un'altra domanda. Come faccio ad impostare gli estremi in cui la funzione rand deve generare i numeri?

YuYevon
18-02-2009, 17:58
Se non mi sbaglio si può fare così:



minimo + rand() % ( ( massimo - minimo ) + 1 );


(se gli estremi sono compresi nell'intervallo)

darth fener
18-02-2009, 18:06
Spero di non andare off-topic, comunque, la generazioni di numeri casuali mi servirebbe sempre in relazione al programma che devo fare della tombola. Adesso devo generare la cartella dell'utente(bel problema). Premetto che mi è stato imposto di usare un array, quindi non posso usare matrici, comunque una cartella è una matrice 9x3 che contiene 15 numeri, ordinati nella colonna, e le restanti 12 caselle sono bianche. Il mio problema è quello di generare da 1 a 3 numeri per colonna, dipende dai casi, questi numeri variano a seconda della colonna, cioè prima colonna 1-9, seconda 10-19...etc fino ad arrivare all'ultima che fa eccezzione perchè va da 80-90. Mi potete aiutare a farlo?

Loading