在c中生成1到10之间的随机数

Nis*_*arg 13 c random

#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产生从结果09,而不是来自110:只需添加1到您的%表达让110.

  • @Nisarg; 并且还包括`time()`函数的`time.h`标题. (2认同)

Byu*_*usa 8

srand(time(NULL));

int nRandonNumber = rand()%((nMax+1)-nMin) + nMin;
printf("%d\n",nRandonNumber);
Run Code Online (Sandbox Code Playgroud)