2016-02-21 29 views
0

如果在while循環中存在if/else,我無法使隨機化工作。下面是代碼:while循環中不會發生隨機化。如何解決這個問題? C++

#include<iostream> 
#include<cstdlib> 
#include<ctime> 
using namespace std; 

int main(){ 
    srand(time(0)); 
    int dice_num=(rand()% 6+1)+(rand()%6 +1); 
    char dice_value,your_guess; 


    while(true){ 

    //Dice Conversion 
     if(dice_num%2==0) dice_value='c'; 
     else dice_value='h'; 

//User Input 
       cout<<"Enter 'c'(even) or 'h'(odd)or 'e' to exit : "; 
       cin>>your_guess; 

     //User Math 
       if(your_guess==dice_value){ 

        cout<<"You Won!"<<endl; 
       }else { 

        cout<<"You Lost!"<<endl; 
       } 

       cout<<your_guess<<dice_value<<endl; 
       if(your_guess=='e') break; 

    } 
} 

我想dice_value永遠是隨機無論是「C」或「H」,但是當循環重複,價值不會改變。我哪裏做錯了?

回答

3

您需要將這樣的說法:

int dice_num=(rand()% 6+1)+(rand()%6 +1); 

到您的while循環。

+2

OMG !!!!我即將跳下懸崖......我很愚蠢.....非常感謝! – Sadij