c - 在c中生成一个1到10之间的随机数

标签 c random

#include <stdio.h>
#include <stdlib.h>

int main()

{
    int randomnumber;
    randomnumber = rand() % 10;
    printf("%d\n", randomnumber);
    return 0;
}

这是一个简单的程序,其中 randomnumber 是一个未初始化的 int 变量,旨在打印为 1 到 10 之间的随机数。但是,每当我一遍又一遍地运行时,它总是打印相同的数字。有人可以帮忙告诉我为什么会这样吗?谢谢你。

最佳答案

每次执行都需要不同的种子。

你可以在程序的开头开始调用:

srand(time(NULL));

请注意,% 10 会产生从 09 而不是从 1 的结果10:只需将 1 添加到您的 % 表达式即可将 1 变为 10

关于c - 在c中生成一个1到10之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17846212/

相关文章:

c - 如果我们不将缓冲区声明为 C 中的全局变量,为什么会发生堆栈溢出?

这可以原子执行吗?

c - 函数内的函数不起作用

c# - 为什么我在生成 Random() 数字时会得到奇怪的结果?

在 C 中将 int 转换为 char 数组

c++ - Clang 在哪里存储 int32_t *p 和 int32_t p[10] 之间的差异?

c - If 和等式语句

php - Base64 编码或 bin2hex 随机字符串

c# - 按字段排序列表,然后随机排序

c++ - std::uniform_real_distribution 包含范围