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

自作関数を使って4つの整数の最大値を求めるC言語プログラム

4つの数 abcd が与えられたとき、自分で定義した関数を使ってそれらの中から最大値を求めることを考えます。

そこで今回は、2つの数を受け取って大きい方を返す max() 関数を作成し、この関数を組み合わせることで4つの数すべての最大値を求めます。

例えば、入力が a = 5b = 8c = 2d = 3 の場合、出力は 8 になります。

解き方の手順

  • 2つの引数 xy を受け取る関数 max() を定義する
  • xy のうち大きい方の値を返す
  • 4つの数 abcd を用意する
  • left_max = max(a, b) として前半2つの最大値を求める
  • right_max = max(c, d) として後半2つの最大値を求める
  • final_max = max(left_max, right_max) として全体の最大値を求める
  • final_max を結果として返す

実装例

以下の実装例を見ると、処理の流れがより理解しやすくなります。

#include <stdio.h>
int max(int x, int y){
    if(x > y){
        return x;
    }else{
        return y;
    }
}
int main(){
    int a = 5, b = 8, c = 2, d = 3;
    int left_max = max(a, b);
    int right_max = max(c, d);
    int final_max = max(left_max, right_max);
    printf("Maximum number is: %d", final_max);
}

入力

a = 5, b = 8, c = 2, d = 3

出力

Maximum number is: 8

ポイント解説

このアプローチのポイントは、問題を小さく分割して考えることです。4つの数をいきなり比較するのではなく、「2つの数の最大値」を求めるシンプルな関数を一度だけ定義すれば、あとはそれを再利用するだけで済みます。

まず (a, b)(c, d) のペアごとに最大値を求め、最後にその2つの結果を比較することで、全体の最大値が効率的に得られます。この手法は「分割統治法」の基本的な考え方にも通じており、より多くの要素から最大値・最小値を求める場合にも応用できます。

  1. 【C言語】再帰関数を使って2つの整数の最大公約数(GCD)を求める方法

    問題 C言語において再帰関数を使用し、与えられた2つの整数の最大公約数(GCD:Greatest Common Divisor)を求めます。 解決策 再帰関数を用いて2つの整数の最大公約数を求めるには、「ユークリッドの互除法」が利用できます。これは「2つの数のGCDは、大きい方の数を小さい方の数で割った余りと、小さい方の数とのGCDに等しい」という性質を応用した手法です。この計算を余りが0になるまで再帰的に繰り返すことで、GCDを効率よく求めることができます。 アルゴリズム 再帰関数を使って2つの整数のGCDを求めるためのアルゴリズムは、以下の手順に従います。 ステップ1 − 再帰関数を

  2. Pythonで制約付きの建物の最大高さを求めるプログラム

    問題の概要整数 n と制約リスト restrictions が与えられたとします。私たちは都市に n 棟の新しい建物を一列に建てようとしていますが、高さに関するいくつかの制限があります。建物には左から順に 1 から n までの番号が付けられており、各制約は restrictions[i] = (id_i, max_height_i) の形式で表され、「id_i 番の建物の高さは max_height_i 以下でなければならない」ことを意味します。建物の高さに関する都市の規則は以下のとおりです。各建物の高さは 0 以上でなければなりません。1 番の建物(最初の建物)の高さは必ず 0 です。隣接す