2016-11-08 12 views
-1

実行されると、賞金や損失が銀行から取られ、または追加された後、再び実行されます。更新された銀行ではなく25 $銀行に戻されます。whileループの外側でintを更新することができません

int main() 
{ 
srand(time(0)); 
int bank = 25; 
int total; 

char answer; 

cout << "Come play Spin the Wheel. The wheel has numbers from 1-10." << endl 
    << "If you spin an even number you lose that amount. If you spin" << endl 
    << "an odd number you win that amount. You start with a 25$ bank." << endl; 
cout << "Your bank is $" << bank << ". Would you like to spin the wheel? (y/n):" << endl; 
cin >> answer; 

while (toupper(answer) == 'Y') 
{ 
    int num = rand() % 10 + 1; 

    if (bank <= 10) 
    { 
     cout << "Sorry you must have more than 10$ to play" << endl; 
    } 
else if (num % 2 == 0) 
    { 
    total = bank + num; 
     cout << "You spun a " << num << " and won $" << num << endl; 
     cout << "Your bank is now: $" << total << endl; 
    } 

    else 

    { 
     total = bank - num; 
     cout << "You spun a " << num << " and lost $" << num << endl; 
     cout << "Your bank is now: $" << total << endl; 
    } 
    cout << "Would you like to play Again (y/n) ?" << endl; 
    cin >> answer; 
} 





return 0; 
} 

それは賞金を実行または損失が取られたり、銀行から追加し、それが再び実行され、銀行がない更新銀行が

+0

を変更することはありません

bank = total 

を設定する必要がありますか? – RyanTCB

+0

これはもともとcout << "あなたの銀行は今:$" << bank + num << endl;しかし、私はそれもまた動作していない合計1つの変数に投げてみました – Drewdinie

+0

最後のcout << "もう一度(y/n)をプレイしますか?" << endl; \t \t cin >>答え; whileループを再度実行します。申し訳ありません本当に新しく、あなたは元の$ 25からそれを変更することはありませんので、少なくとも – Drewdinie

答えて

0

はあなたがするバンクを初期化する25 $バンクに戻って設定されている場合この機能では25ドル。 whileループの内部では、銀行だけでなく合計が更新されます。

再生する金が少なすぎると、別の問題が発生します。私は一度あなたのメッセージを表示したいと思うが、それは決して壊れていないのであなたはループの中にこだわっている。

0

私はあなたのelseとelse文が後方にあると信じています。

num % 2 == 0 

数字が偶数であった場合、それは真であることを示します。数字が偶数であれば、お金を失うと説明されています。

あなたが最初の25その後何にでも銀行を設定することはありませんので、銀行は常に10以下になることはありません25

変数の合計は、冗長なようです。たぶん、銀行から直接ロールされた金額を加算または減算します。

0

あなたは、あなたが銀行を更新している、その値

関連する問題