如何随机产生1到20间的20个不重复的数
如何随机产生1到20间的20个不重复的数,各位大神有木有什么好的算法,拜托啦
产生一个随机数先
然后再产生的数和之前的比较
如重复则一直产生 一直比较 直到完成目标为止
#include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) { int arr[20] = {0}; int i = 0; int num = 0; int flag = 0; srand( (unsigned)time( NULL ) ); do { i = -1; flag = 0; num = rand() % 21; while(arr[++i]) { if(num == arr[i]) { flag = 1; break; } } if(!flag) { arr[i] = num; } }while(i <= 20); for(i = 0; i < 20; i++) printf("%d ",arr[i]); printf("\n"); return 0; }