首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

rand()为我的while循环输出相同的数字,但不为for循环输出相同的数字

rand()函数是C语言中的一个随机数生成函数,用于生成一个伪随机数。在使用rand()函数时,如果不设置随机数种子,每次程序运行时生成的随机数序列都是相同的。因此,在while循环中多次调用rand()函数时,可能会得到相同的数字。

为了解决这个问题,可以在循环之前使用srand()函数设置随机数种子。srand()函数需要传入一个参数,一般可以使用time(NULL)函数获取当前时间作为种子,确保每次运行程序时都会生成不同的随机数序列。示例代码如下:

代码语言:txt
复制
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL)); // 设置随机数种子

    int i = 0;
    while (i < 10) {
        int num = rand(); // 生成随机数
        printf("%d\n", num);
        i++;
    }

    return 0;
}

这样,每次运行程序时,while循环中调用rand()函数生成的随机数就会不同。

需要注意的是,for循环中使用rand()函数同样会遇到相同的问题,解决方法也是一样的,即在循环之前使用srand()函数设置随机数种子。

关于rand()函数的更多信息,可以参考腾讯云的开发者文档:rand()函数介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券