2017-04-14 3 views
-1

基本的に私のプログラムは、2人で100を差し引いて0になるまで払います。私は入れ子になったforループを使用しています。人が整数を入力する必要があるので、各人物のための1つのループ。その整数は100で控除されます。ネストされたforループC++を使用して100からゼロを控除する方法

しかし、主な問題は、現在の値100を失うことなく第1のループを繰り返すことができないということです。私は初心者です。 forループ

for(int x = 1; x<=100;) 
{ 
    cout <<"\n\n"<< nP1 <<" how many of the remaining " << chips<<" chip(s) would you like?"<<endl; 
    cin >> P1c; 
    result = chips-P1c; 
    cout <<result; 

    for(int y = 1; y <=100;) 
    { 
    cout <<"\n\n"<< nP2 <<" how many of the remaining " << result<<" chip(s) would you like?"<<endl; 
    cin >> P2c; 
    result = result-P2c; 
    cout <<result; 
    break; 
    } 

Screenshot

+0

私はあなたがしようとしていることを理解していません。あなたは100という値を持っていて、2人のユーザーにこの値から次々と数を引くように求めるのですか? – MrPromethee

+0

@MrPromethee結構です。 – Zaidi

+0

両方のプレイヤーを同じループで実行する必要があります。 – stark

答えて

0

これには適していない - 「何かがゼロになるまで繰り返しを」あなたは、問題を記述しているように、「百回繰り返す」とは非常に異なっている、などあなたはそれを解決しようとしました。

while there are any chips left 
    let person 1 pick some chips 
    if there are still any chips left 
     let person 2 pick some chips 

練習問題として残されたコードに翻訳:あなたが実際の生活の中でこれを遊んでいた場合

は、おそらくこのような何かをするだろう。

-1

あなたがシミュレートしたいのは、チップの1つの袋から食べる人々のグループだと思います。あなたの現在のコードの問題は2倍です。 yとxは減ることはありませんが、カウンタとしてxとyを使用すべきではありません。あなたはカウンターとして袋のチップの数を使用する必要があり、各人が食べた後にそれを減らす必要があります。

Whileループがこの問題に適しています。しかし、あなたがforループを使用する必要がある場合...

int num_people = 2; 
int people[num_people]; 
int tmp; 

// Begin eating 
for (int chips = 100; chips > 0;) 
{ 
    // Rotate through group of people 
    for (int i = 0; i < num_people; i++) 
    { 
     printf("Person %d take chips >\n", i); 
     cin >> tmp; 

     // No person can take more than the remaining chips 
     tmp = max(tmp, chips); 

     // Increment chip eating total for each person 
     people[i] += tmp; 
     chips -= tmp; 

     // Break the rotation if there are no more chips to eat 
     if (chips <= 0) 
     { 
      break; 
     } 
    } 
} 

// Lets see who ate how many for fun 
for (int i = 0; i < num_people; i++) 
{ 
    printf("Person %d had %d chips\n", i, people[i]); 
} 

return 0; 
+0

OPは "must for loop"と言っていました。あなたがしばらく言ったように、ループははるかに良いだろう – user463035818

+0

誰にでも私を票決した、おそらく彼の割り当てはループのために必要です。彼の質問はforループを使って自分の仕事をする方法でした。 – DeepDeadpool

関連する問題