Vorre inizializzare un array bidimensionale 13*4 con 52 numeri diversi tra loro, ho scritto questo:
codice:
int array_smazzata[13][4];
srand(time(NULL));
//inizializza la smazzata
int i;
for (i=0; i<=12; ++i)
{
int j;
for(j=0; j<=3; ++j)
{
//genera numero random diverso dai precedenti
int i_random;
int bool_diverso=0;
while (!bool_diverso)
{
bool_diverso=1;
i_random=rand()%52+1;
int h;
for(h=0; h<=i; ++h)
{
int l;
for(l=0; l<=3; ++l)
{
if(i_random==array_smazzata[h][j])
{bool_diverso=0; break;}
}
if (!bool_diverso){break;}
}
}
// fine generazione
array_smazzata[i][j]=i_random;
}
}
//fine inizializzazione
int a;
int b;
for(b=0; b<=3; ++b)
{
for(a=0; a<=12; ++a)
{
printf("%2i, ", array_smazzata[a][b]);
}
printf("\n");
}
Tuttavia mi compaiono dei numeri uguali e non riesco a trovare l'errore...se qualcuno capisse dove sbaglio mi farebbe un gran favore.