每次调用该函数时,始终为“ number = 5”。该数字始终保持为5。我已经对其进行了检查,以确保仅当我感到困惑时才运行srand。这是一个类内部的函数。
int playType::getComputerMove(){
int number;
if(gamesPlayed == 0){
srand(time(NULL));
}
number = rand() % 1 + 5;
return number;
}
答案 0 :(得分:6)
您的问题在于操作顺序。 rand() % 1
在添加五个之前得到解析。从n % 1 = 0
开始,您将始终获得5。本质上,这是在发生什么事情:
number = (rand() % 1) + 5;
为了解决此问题,您将需要通过以下方式添加括号:
number = rand() % (1 + 5);