#include <stdio.h>
#include <stdlib.h>
int main()
{
int randomnumber;
randomnumber = rand() % 10;
printf("%d\n", randomnumber);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的程序,其中randomnumber是一个未初始化的int变量,意味着打印为1到10之间的随机数.但是,每当我反复运行时,它总是打印相同的数字.有人可以帮忙告诉我为什么会这样吗?谢谢.
oua*_*uah 13
每次执行都需要不同的种子.
您可以在程序开头调用:
srand(time(NULL));
Run Code Online (Sandbox Code Playgroud)
需要注意的是% 10产生从结果0来9,而不是来自1于10:只需添加1到您的%表达让1到 10.
srand(time(NULL));
int nRandonNumber = rand()%((nMax+1)-nMin) + nMin;
printf("%d\n",nRandonNumber);
Run Code Online (Sandbox Code Playgroud)