2016-04-16 6 views
-1

ユーザーの入力データが希望の範囲内にあるかどうかを確認しようとしています。これまでのところ、私はこのようにそれを持っている:彼らは数1未満または5より大きいと入力した場合ifステートメントで配列データをチェックしようとしています

void getPlayersNumbers(int playerArray[], int size) { 

cout << "Please enter 5 numbers between 1-5\n"; 

for (int i = 0; i < size; i++) { 
    cin >> playerArray[i]; 

    if (playerArray[i] < 1 || playerArray[i] > 5) { 
     cout << "Please enter numbers between 1 and 5\n"; 
    } 
} 
} 

は今のメッセージが表示されます。唯一の問題は、それらのうちの1つが範囲外でメッセージが表示されても、5つの数字の合計を入力できることです。自分の設定した範囲内にある5つの数字を入力すると機能が終了するだけなので、どうすればいいですか?

+0

(HTTPS [あなたのゴム製のアヒルに、あなたのコード内のロジックを説明する]試してみてください5

  • より1より小さいか大きかったかどうかを確認:// EN。 wikipedia.org/wiki/Rubber_duck_debugging)。あなたのラバーアヒルにいくつかのアイデアがあると確信しています。 –

  • +0

    代わりに、固定の 'for'ループではなく' while'を使用し、正しい入力だけのためのカウンタを使用してください。 – usr2564301

    +0

    番号が範囲外である場合、プログラムは再度番号を要求する必要があります。これを行うには、ループ本体を、適切な範囲の数値を要求して返す関数への呼び出しで置き換えます。関数はループを使用してOK番号が得られるまで繰り返し呼び出します。 –

    答えて

    1

    は、あなたが何をしているか考えてみましょう:

    1. あなたが入力を取得します。
    2. あなたはその入力をあなたの配列に入れます。
    3. あなたは、入力が戻っに移動1.
    +0

    これは本当に私の問題を別の方法と考えるようになりました。ありがとう! – NewStudent93

    関連する問題