如何随机产生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;
}