随机生成11个1到40数字,且不能重复,使用C语言
时间: 2023-12-01 22:04:02 浏览: 131
好的,以下是使用 C 语言实现的随机生成 11 个 1 到 40 的不重复数字的方法:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 40
int main() {
int nums[MAX_NUM]; // 存放数字的数组
int selected[MAX_NUM] = {0}; // 标记数字是否已经被选中
int i, j, count = 0;
// 初始化数组
for (i = 0; i < MAX_NUM; i++) {
nums[i] = i + 1;
}
// 随机选取 11 个不重复的数字
srand(time(NULL)); // 初始化随机种子
while (count < 11) {
// 生成随机下标 j
j = rand() % MAX_NUM;
// 如果该数字未被选中,则将其添加到结果数组中
if (!selected[j]) {
selected[j] = 1;
count++;
printf("%d ", nums[j]);
}
}
printf("\n");
return 0;
}
```
这里我们使用了一个 selected 数组来标记数字是否已经被选中。每次从数组中随机选择一个数字,如果该数字未被选中,则将其添加到结果数组中,并将其标记为已选中。当结果数组中包含 11 个数字时,停止选择并输出结果。
通过这种方式,我们可以生成一个随机的、不重复的、包含 1 到 40 的 11 个数字的数组。程序运行多次可以生成不同的结果。
阅读全文