【问题标题】:How can i generate random numbers with rand()? [closed]如何使用 rand() 生成随机数? [关闭]
【发布时间】:2020-04-21 12:18:04
【问题描述】:

我需要帮助我编写的这段代码。问题是我希望它生成从 1000 到 9999 的随机数。但是如果你运行它,它会返回高于 9999 的数字。我已经阅读了一些关于使用 rand() 的正确方法的论坛,但仍然卡住了。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{

    int w = 0;
    int mi;
    int i;
    srand(time(0));
    for(i=0;i<=20;i++)
    {
    mi= rand() % 9999+1000;    
    printf("%d\n",mi);
    }
    return 0;
}

【问题讨论】:

  • (rand() % (upper - lower + 1)) + lower 是一种方式,尽管它可能在统计上存在偏差,特别是如果RAND_MAX 很小。这可能有一个很好的重复,尽管关于这类主题的一些早期答案很差。

标签: c random srand


【解决方案1】:

如果您需要 1000 到 9999 之间的数字,这意味着您需要 9000 个数字范围内的值。所以这个值需要是你的模数,而不是 9999。

mi = rand() % 9000 + 1000;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多