我需要在C++中生成一个4位数的随机数
我使用了以下代码
#include<time.h>
int number;
number=rand()%1000;
srand ( time(NULL) );
Run Code Online (Sandbox Code Playgroud)
但它没有给出一个总随机数
Arm*_*yan 16
number = rand() % 9000 + 1000;
Run Code Online (Sandbox Code Playgroud)
有9000个四位数字,对吗?从1000到9999开始rand()将返回0到0之间的随机数RAND_MAX.rand() % 9000将从0到8999,rand() % 9000 + 1000;将从1000到9999.一般来说,当你想要一个从a到b的随机数时,公式就是
rand() % (b - a + 1) + a
Run Code Online (Sandbox Code Playgroud)
另请注意,srand()应该只调用一次,然后再调用rand().
如果您确实将0到999之间的数字视为"四位数字",那么只需使用rand() % 10000.我不认为它们是,但我覆盖了所有基础,以防万一.
HTH