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.