Vorre inizializzare un array bidimensionale 13*4 con 52 numeri diversi tra loro, ho scritto questo:
Tuttavia mi compaiono dei numeri uguali e non riesco a trovare l'errore...se qualcuno capisse dove sbaglio mi farebbe un gran favore.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"); }

Rispondi quotando