2015-09-25 171 views
-2

我的程序的這一小部分將在一個循環中生成2個隨機值,循環將循環無限次,直到滿足條件。我生成2個值,然後將這兩個值添加到totalNum中,然後將totalNum傳遞給pointMatch變量。我需要pointMatch只接收第一個總數,然後在整個程序中保留相同的確切數字。之後,將生成下一代數字,然後將其添加到總數中。我需要檢查這個總數是否等於上一個pointMatch,如果不是再次生成新的數字,直到滿足條件。我似乎無法讓pointMatch保持不變,總是等於總數。我似乎無法弄清楚我做錯了什麼?

+2

什麼是'7 + 1 = 6'? –

+1

我不認爲有人理解這個問題。 –

+1

爲什麼這個'while(totalRoll!= pointMatch){'a while而不是'if'?看起來它永遠不會重複。 –

回答

2

問題是你想潔具達到目的,如果你想pointMatch保持不變,則不會產生過rand()第二隨機值,而不是它是通過一個非常複雜的方法很簡單,只需減去第一一個來自pointMatch

int rollDice() { 
    /* WRONG: just call this once in the whole program */ 
    srand(time(NULL)); 

    /* pick a random value */ 
    randValue = 1 + rand() % 6; 
    secondRandValue = pointMatch - randValue; 

    return randValue + secondRandValue; //return random total 
} 

此外,它似乎好像所有的變量是全局變量,這通常是一個壞的跡象。

此結果與默認隨機數生成器可爲randValuesecondRandValue生成隨機數一樣隨機,如果您有任何針對此方法的良好論點,請分享它。

+1

甚至更​​好,只是'return pointMatch;'如果打印僅用於調試目的。 –

相關問題