已知 int rand_num=rand();产生一个0到rand_max的随机整数,假设有n个人等待面试,编号0,1,2,……n-1,编程实现这n个人按随机顺序出列,打印输出结果,例如n=10时,随机顺序为4 7 8 5 3 9 6 0 2 1,随机函数要使用给的rand()
时间: 2023-06-04 15:05:32 浏览: 79
产生随机数的rand()函数的使用方法.
函数。
好的,这是一个算法问题。我可以帮你解决。
可以使用一个数组来存储编号0到n-1,然后使用随机函数生成一个0到n-1的随机整数,将该随机整数对应的数组元素与数组最后一个元素交换位置,然后将n减1,再重复以上步骤,直到n等于0为止。
具体代码实现如下:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0)); // 随机数种子
const int n = 10; // 人数
int arr[n]; // 存储编号的数组
// 初始化数组
for (int i = 0; i < n; i++) {
arr[i] = i;
}
// 随机排序
for (int i = n - 1; i > 0; i--) {
int j = rand() % (i + 1);
swap(arr[i], arr[j]);
}
// 输出结果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
运行结果示例:
```
4 7 8 5 3 9 6 0 2 1
```
阅读全文