将指定范围内不重复的随机数输到数组中———C语言函数小组件(1)
程序员文章站
2022-05-19 20:55:24
...
将指定范围内不重复的随机数输到数组中———C语言函数小组件(1)
提示:关于随机数与数组的函数小组件
##函数体
bool Rander(int rander[], int MaxLen, int Min, int Max) //改造一个数组使其,有一组(不重复)随机数,需要time.h头文件
{ //注:因为随机数不重复,所以随机数的取值范围不能小于数组最大长度
if((Max - Min) + 1 < MaxLen) //即: (Max - Min) + 1 > MaxLen
return false;
int temp, flag, i = 0;
for(int i = 0; i < Max; i++)
rander[i] = -1;
srand((unsigned)time(NULL));
while(i < MaxLen)
{
flag = 1;
temp = rand() % (Max - Min + 1) + Min; //随机数范围
for (int j = 0; j < MaxLen; j++)
{
if (temp == rander[j])
{
flag = 0;
break;
}
}
if (flag == 1)
{
rander[i] = temp;
i++;
}
}
return true;
}
##测试
int main()
{
int rander[4];
Rander(rander, 4, 1, 4);
for(int i = 0; i < 4; i++)
{
printf("%d", rander[i]);
}
}