每次调用该函数时,总是“number = 5”。数字始终保持为 5。我已经检查过它以确保 srand 只运行一次,有些我很困惑。这是一个类内部的函数。
int playType::getComputerMove(){
int number;
if(gamesPlayed == 0){
srand(time(NULL));
}
number = rand() % 1 + 5;
return number;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您的问题与操作顺序有关。rand() % 1加五之前就解决了。因为n % 1 = 0,你总是会得到 5。本质上,发生的事情是这样的:
number = (rand() % 1) + 5;
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,您需要以这种方式添加括号:
number = rand() % (1 + 5);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |