[英]Why rand() keep giving the same value?
每次調用該函數時,總是“number = 5”。 數字始終保持為 5。我已經檢查過它以確保 srand 只運行一次,有些我很困惑。 這是一個類內部的函數。
int playType::getComputerMove(){
int number;
if(gamesPlayed == 0){
srand(time(NULL));
}
number = rand() % 1 + 5;
return number;
}
您的問題與操作順序有關。 rand() % 1
在添加 5 之前被解析。 由於n % 1 = 0
,你總是會得到 5。本質上,發生的事情是這樣的:
number = (rand() % 1) + 5;
為了解決這個問題,您需要以這種方式添加括號:
number = rand() % (1 + 5);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.