gpt4 book ai didi

c++ - 为什么rand()继续赋予相同的值?

转载 作者:行者123 更新时间:2023-12-01 15:10:59 24 4
gpt4 key购买 nike

每次调用该函数时,始终为“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com