c语言使用rand产生的随机数每次都一样
时间: 2024-09-09 11:13:15 浏览: 58
C语言中用于产生随机数的函数使用方法总结
C语言中使用 `rand()` 函数产生的随机数每次都一样,通常是因为随机数生成器(Random Number Generator, RNG)的种子(seed)没有改变。`rand()` 函数依赖于一个种子值来产生序列,如果每次程序运行时种子值相同,那么 `rand()` 生成的随机数序列也会相同。
为了每次运行程序时获得不同的随机数序列,可以通过设置一个不同的种子值来初始化随机数生成器。通常会使用 `srand()` 函数来设置种子值,而 `srand()` 函数常常以 `time(NULL)` 的返回值作为种子,因为 `time(NULL)` 每次返回的都是当前时间,所以每次运行程序时种子都会不同。
下面是一个简单的示例代码,演示如何设置种子以产生不同的随机数序列:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 初始化随机数生成器的种子
srand((unsigned int)time(NULL));
// 生成并打印10个随机数
for(int i = 0; i < 10; i++) {
printf("%d\n", rand() % 100); // 产生0到99之间的随机数
}
return 0;
}
```
阅读全文