【发布时间】: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很小。这可能有一个很好的重复,尽管关于这类主题的一些早期答案很差。