2

ねえ、私は今週始めたばかりの基本的な C++ を学んでいます。次のような質問があります。

3 つの整数を比較して最大のものを出力するプログラムを作成します。プログラムは 2 つの IF ステートメントのみを使用する必要があります。

これを行う方法がわからないので、助けていただければ幸いです

これまでのところ、私はこれを持っています:

#include <iostream>

using namespace std;

void main()
{
int a, b, c;

cout << "Please enter three integers: ";
cin >> a >> b >> c;

if ( a > b && a > c) 
    cout << a;
else if ( b > c && b > a)
    cout << b;
else if (c > a && c > b)
    cout << b;

system("PAUSE");

}
4

4 に答える 4

6
int main()
{
  int a, b, c;
  cout << "Please enter three integers: ";
  cin >> a >> b >> c;
  int big_int = a;

  if (a < b)
  {
      big_int = b;
  }

  if (big_int < c)
  {
    big_int = c;
  }
  return 0;
}

int main()また、の代わりに書く必要があることに注意してくださいvoid main()

于 2013-01-31T11:40:34.143 に答える
6
#include <iostream>

int main()
{
    int a, b, c;
    std::cout << "Please enter three integers: ";
    std::cin >> a >> b >> c;

    int max = a;
    if (max < b)
        max = b;
    if (max < c)
        max = c;

    std::cout << max;    
}

上記のコードは演習の質問を満たしていますが、sなしでそれを行う方法を示すために他のいくつかの方法を追加すると思いましたif

より不可解で読みにくい方法でそれを行うことはお勧めできませんが、

int max = (a < b) ? ((b < c)? c : b) : ((a < c)? c : a);

エレガントな方法#include <algorithm>

int max = std::max(std::max(a, b), c);

C ++ 11を使用すると、

const int max = std::max({a, b, c}); 
于 2013-01-31T11:40:48.427 に答える
3

最後の「elseif」ステートメントは必要ありません。コードのこの部分では、「c」が最大であることを確認します。これよりも大きい数はありません。

于 2013-01-31T11:40:14.793 に答える
1

ヒント:ifステートメントの 1 つが役に立ちません (実際には、a、b、c がすべて等しい場合は何も出力されないため、バグが発生します)。

于 2013-01-31T11:41:13.830 に答える