1

$5 つの数字から 80 より大きいすべての数字を出力することになっていました。しかし、私が書いたプログラムは、80 より大きい最初の数値を出力するだけです。80 より大きいすべての数値を出力するにはどうすればよいでしょうか? これが私のコードです..

int main ()
{

    int num1,num2,num3,num4,num5;

    cout << "Enter five marks : ";
    cin >> num1 >> num2 >> num3 >> num4 >> num5;
    cout << endl;


         cout << "Marks are greater than 80 is : ";

         {
         if (num1 > 80)
         cout << num1 << endl;

         else if(num2 > 80)
         cout << num2 << endl;

         else if(num3 > 80)
         cout << num3 << endl;

         else if(num4 > 80)
         cout << num4 << endl;

         else if(num5 > 80)
         cout << num5 << endl;

         else
         cout << "error" << endl;
         }
4

3 に答える 3

0

に置き換えelse ifますifelse ifチェーンを使用すると、そのうちの 1 つだけが実行されます (最初に一致したもの)。

于 2013-10-28T15:40:32.583 に答える
0

あなたのロジックは を使用してifおり、次にを使用していelse ifます。これにより、すべての条件が互いに排他的になります。つまり、そのうちの1 つだけが発生します。

elseそれらを包括的にするには、パーツを削除します。

if (num1 > 80)
 cout << num1 << endl;

if(num2 > 80)
 cout << num2 << endl;

// etc.

また、ブロックを削除するelseか、すべての数字が true かどうかをチェックし、<= 80true の場合はエラーになる条件を作成することもできます。

if (num1 <= 80 && num2 <= 80 && num3 <= 80 && num4 <= 80 && num5 <= 80) {
    cout << "error" << endl;
}
于 2013-10-28T15:40:32.773 に答える