Guarda, è questo il codice che devi usare:
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..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]); }

Rispondi quotando