C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で4つの整数から最大値を求める方法:自作関数を使った実装例

この記事では、4つの整数 abcd の中から最大の数を見つけるC++プログラムを紹介します。ポイントは、標準ライブラリに頼らず、自分で関数を作成するところにあります。

まず、2つの数を引数として受け取り、そのうち大きい方を返す max() 関数を定義します。この関数を組み合わせて使うことで、4つの数すべての最大値を効率的に求めることができます。

例えば、入力が a = 75b = 18c = 25d = 98 の場合、出力は 98 となります。

解決の手順

  • xy を引数に取る関数 max() を定義します。
  • xy のうち大きい方を返します。
  • 4つの数 abcd を用意します。
  • left_max := max(a, b) — 前半2つの最大値を求めます。
  • right_max := max(c, d) — 後半2つの最大値を求めます。
  • final_max = max(left_max, right_max) — 2つの結果を比較し、全体の最大値を決定します。
  • final_max を返します。

このように、ペアごとに比較を行う「トーナメント方式」を採用することで、比較回数を抑えながらシンプルに最大値を導き出せます。

実装例

以下のコードで実際の動作を確認してみましょう。

#include <iostream>
using namespace std;
int max(int x, int y){
    if(x > y){
        return x;
    }else{
        return y;
    }
}
int main(){
    int a = 75, b = 18, c = 25, d = 98;
    int left_max = max(a, b);
    int right_max = max(c, d);
    int final_max = max(left_max, right_max);
    cout << final_max;
}

入力

75, 18, 25, 98

出力

98

なお、C++では標準ヘッダーの <algorithm> にある std::max() を利用することもできますが、自作関数を実装することで、条件分岐や戻り値の仕組みなど、プログラミングの基礎的な考え方をしっかりと学ぶことができます。初心者の学習教材としても最適な例題です。

  1. C++で階乗を求めるプログラム|再帰・非再帰の2つの実装方法を解説

    非負整数 n の階乗とは、n 以下のすべての正の整数を掛け合わせた積のことです。たとえば、5 の階乗は次のように計算されます。5! = 5 × 4 × 3 × 2 × 1 5! = 120整数の階乗は、再帰的なプログラムまたは非再帰的なプログラムのいずれかで求めることができます。ここでは、両方の実装例をサンプルコードとともに紹介します。 方法1:非再帰プログラム(forループ)で階乗を求める 最もシンプルな方法は、for ループを使って 1 から n まで順番に掛け合わせていく方法です。以下のプログラムでその実装を見てみましょう。 サンプルコード #include <iostream&g

  2. 3つの数字の中から最大値を見つけるC++プログラム

    3つの数値の中から最大のものを求めるには、if文を組み合わせて条件分岐を行うのが基本的な方法です。ここでは、if文を入れ子構造にして最大値を判定するC++プログラムを紹介します。 サンプルコード #include <iostream> using namespace std; int main() {    int a = 5 ,b = 1 ,c = 9;    if(a>b) {       if(a>c)       cout<<a<<&quo