这个问题在这里已有答案:
我试图用rand()
函数生成从0到3的随机数,并且它工作正常,但我注意到一些奇怪的东西。
每次运行并重新运行项目时,该函数都会生成相同的数字模式。
这是我使用的代码尽可能简单地分解。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int randomNumber;
for (int i = 0; i < 15; i++)
{
randomNumber = rand() % 4;
printf("%d ", randomNumber);
}
getchar();
return 0;
}
这打印出从0到3的15个随机数,对我来说这就是我得到的
1 3 2 0 1 0 2 2 2 0 1 1 1 3 1
所以这很好。但问题是,每次运行程序时都会打印出完全相同的内容。
知道为什么会这样吗?
在计算机科学中没有随机数这样的东西。因此,要生成不同的输出,我们必须使用伪随机。要做到这一点,请在srand(time(0))
中声明您已声明的变量。