Try creating a randomization function, for example:
void randomize(int v[], int size, int r_max) {
int i,j,flag;
v[0] = 0 + rand() % r_max;
for(i = 1; i < size; i++) {
do {
v[i]= 0 + rand() % r_max;
for(j=0; j<i; j++) {
if(v[j] == v[i]) {
flag=1;
break;
}
flag=0;
}
} while(flag == 1);
}
}
Then just call it by passing an array v[]of 11 elements, its size and upper range:
randomize(v, 11, 11);
The array, because it is passed as an argument by reference, will be randomized, without repeats and with numbers that appear once.
Remember to call srand(time(0));before calling randomizeand initializeint v[11]={0,1,2,3,4,5,6,7,8,9,10};
source
share