c一定范围内生成随机数且不重复
时间: 2024-11-07 22:13:05 浏览: 37
在C语言中,如果你想要在一个特定范围内生成不重复的随机整数,你可以使用`<stdlib.h>`库中的`srand()`和`rand()`函数配合数组或者其他数据结构来实现。首先,你需要设置一个随机数种子,通常用当前时间或其他唯一值初始化`srand(time(NULL))`。然后,你可以创建一个包含所有可能数值的数组,并使用循环来生成随机索引,以此获取随机数。
例如:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define RANGE 10 // 范围限制
int random_numbers[RANGE];
void generate_random(int start, int end) {
srand(time(NULL)); // 设置随机种子
for (int i = 0; i < RANGE; ++i) {
random_numbers[i] = rand() % (end - start + 1) + start;
}
}
// 生成并打印不重复的随机数
void print_unique_random(int start, int end) {
generate_random(start, end);
for (int i = 0; i < RANGE; ++i) {
printf("%d ", random_numbers[i]);
}
printf("\n");
}
int main() {
int min = 1; // 最小值
int max = 100; // 最大值
print_unique_random(min, max);
return 0;
}
```
在这个示例中,`print_unique_random`函数会生成`RANGE`个在`[min, max]`范围内的不重复随机数。
阅读全文