每次调用该函数时,始终为“number = 5”。该数字始终保持为5。我已经对其进行了检查,以确保仅当我感到困惑时才运行srand。这是一个类内部的函数。
int playType::getComputerMove(){
int number;
if(gamesPlayed == 0){
srand(time(NULL));
}
number = rand() % 1 + 5;
return number;
}
最佳答案
您的问题在于操作顺序。 rand() % 1
在添加五个之前已解决。由于n % 1 = 0
,您将始终得到5。本质上,这是发生了什么:
number = (rand() % 1) + 5;
为了解决此问题,您将需要通过以下方式添加括号:
number = rand() % (1 + 5);
关于c++ - 为什么rand()继续赋予相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60086822/