📜  C 程序的输出 |第 33 组(rand() 和 srand())(1)

📅  最后修改于: 2023-12-03 15:13:48.283000             🧑  作者: Mango

C 程序的输出 | 第 33 组 (rand() 和 srand())

介绍

在 C 语言中,rand() 和 srand() 是两个与随机数相关的函数,它们分别用于生成随机数和设置随机数种子。

rand() 函数可以产生一个 [0, RAND_MAX] 之间的随机整数,其中 RAND_MAX 是一个由系统定义的常量,它代表了 rand() 函数所能返回的最大值,其通常取值为 32767。

srand() 函数可以用于设置 rand() 函数所使用的随机数种子。如果没有调用 srand() 函数,rand() 函数会默认使用一个常量值作为种子。在每次程序运行时,这个常量值是一样的,因此 rand() 函数每次返回的结果都是一样的。

使用方法

要使用 rand() 函数产生随机数,需要先调用 srand() 函数设置一个随机数种子,否则每次调用 rand() 函数都会得到相同的结果。通常情况下,可以使用如下方法来设置随机数种子:

srand((unsigned)time(NULL));

这种方法使用当前时间作为随机数种子,以确保每次调用 rand() 函数都得到不同的结果。

随后,使用如下方法来产生随机数:

int random_number = rand() % (upper_bound - lower_bound + 1) + lower_bound;

其中,upper_boundlower_bound 分别为随机数的上下界,% 为求余操作,保证生成的随机数在指定的范围内。

示例代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int i;

    // 设置随机数种子
    srand((unsigned)time(NULL));

    // 生成 10 个随机数
    for (i = 0; i < 10; i++) {
        int random_number = rand() % 100; // 随机数的范围是 [0, 99]
        printf("%d ", random_number);
    }

    return 0;
}

以上代码会生成 10 个随机数,并将其打印出来。

注意事项
  1. 在使用 rand() 函数之前一定要先调用 srand() 函数,否则每次得到的随机数都是相同的。
  2. srand() 函数只需要在程序中调用一次即可,多次调用无意义。
  3. 如果每次生成的随机数种子相同,那么每次调用 rand() 函数得到的随机数也是相同的。因此,要确保随机数种子每次都不一样,可以使用当前时间作为种子。
  4. 在实际应用中,随机数的生成往往不止一次。因此,在程序中需要多次调用 rand() 函数来生成随机数。