Guarda, è questo il codice che devi usare:
codice:
#include <time.h>
#include <stdlib.h>
#include <malloc.h>
int isDoppio(int*array, int x, int len){
int i;
for(i=0;i<len; i++)
if(array[i] == x) return 1;
return 0;
}
void main(){
srand(time(NULL));
int *generati;
int val;
int i=0;
generati = (int*) malloc(12*sizeof(int));
for(i=0;i<11;i++){
val = rand()%12;
do{
if( isDoppio(generati, val, 12) == 1)
val = rand()%12;
else{
generati[i] = val;
break;
}
}while(1);
}
for(i=0;i<12;i++)
printf("%d\n", generati[i]);
}
Con il ciclo for generi 12 numeri casuali, con il do-while controlli che siano uguali, se lo sono, ne generi un'altro, altrimenti lo inserisci nel vettore e riparti. Non capisco molto bene il tuo codice, perchè inserisci tutti i valori che generi nell'array doppio? Mi spieghi la logica del tuo codice? Così possiamo discuterne insieme..