簡體   English   中英

為什么 rand() 一直給出相同的值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM