c语言实现n个人 n个数 随机分配大小为1-n
时间: 2024-04-11 15:27:35 浏览: 23
你好!针对你的问题,我可以给你提供一个使用C语言实现的代码示例。这段代码可以实现将n个人分配到n个不重复的随机数中,范围为1到n。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int arr[], int n) {
srand(time(NULL));
for (int i = n - 1; i > 0; i--) {
int j = rand() % (i + 1);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int main() {
int n;
printf("请输入人数n:");
scanf("%d", &n);
int* people = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
people[i] = i + 1;
}
shuffle(people, n);
printf("随机分配结果为:\n");
for (int i = 0; i < n; i++) {
printf("第%d个人的数为:%d\n", i + 1, people[i]);
}
free(people);
return 0;
}
```
这段代码首先会询问你想要分配的人数n,然后按照1到n的顺序初始化一个数组,接着使用洗牌算法将数组中的元素随机打乱,最后输出每个人分配到的随机数。
希望这段代码对你有帮助!如果你还有其他问题,请随时提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)