一、设计思路
为随机产生50个55以内的整数且不能重复,应先将已经产生的随机数保存下来,然后在获取到新的随机数时,与之前保存下来的值进行对比,如果已经出现过则抛弃,并再次获取,直到获取到不同的随机值为止。
二、源代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int list[50], i,j, a;
srand(time(NULL)); //设置随机数种子。
for(i = 0; i < 50; i ++)
{
while(1)
{
a = rand()%55; //获取一个0~55之间的随机数。
for(j = 0; j < i; j ++)
if(list[j] == a) break; //检查重复。
if(j == i) //没有重复值,保存到list中。
{
list[i] = a;
break;
}
}
}
for(i = 0; i < 50; i ++) //打印获取到的随机数序列。
printf("%d,",list[i]);
printf("\n");
return 0;
}