C言語のきほん「三つの整数の最大値を求める」

スポンサーリンク
コンピューター C言語

今回は、「三つの整数の最大値を求める」関数を作成しよう。

三つの整数の最大値を求める

//三つの整数の最大値を求める

#include <stdio.h>

//三つの整数の最大値を返す関数
int max3(int a,int b,int c)
{
    int max = a;
    if (b > max)    max = b;
    if (c > max)    max = c;

    return max;
}

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

    puts("三つの整数を入力してください。");
    printf("整数a:");    scanf("%d",&a);
    printf("整数b:");    scanf("%d",&b);
    printf("整数c:");    scanf("%d",&c);

    printf("最大値は%dです。\n",max3(a,b,c));

    return 0;
}

実行結果

三つの整数を入力してください。
整数a:5
整数b:3
整数c:4
最大値は5です。

関数を使う際には、「関数呼び出し」が行われる。

関数呼び出しが行われると、プログラムの流れは、その関数へ移る。
main関数の実行が一時的に中断して、関数max3の実行が開始する。

呼び出された関数では、仮引数用の変数が生成されて、実引数の値が代入される。
→関数max3を呼び出す際に、main関数で宣言されたa、b、cの値が実引数として渡されて、それぞれが関数max3の仮引数a、b、cに代入される。
なお、本プログラムの場合は、関数max3の仮引数a、b、cと、main関数の変数a、b、cは名前が同じだが、それぞれ別個のものである。

仮引数への値の代入が完了すると、関数本体が実行される。
そして、プログラムの流れがreturn文に出会うか、関数本体の末尾の}に到達すると、その関数から抜け出して、呼び出された場所へ戻る。

その返却値は、関数呼び出し式の評価によって得られる。
→関数max3の返却値5がprintf関数に渡されて、その値が表示される。

なお、関数は2個以上の値の返却は行えない。

参考)新・解きながら学ぶC言語 第2版 柴田望洋 (監修・著), 由梨かおる(著)SBクリエイティブ

新・解きながら学ぶC言語 第2版

コメント

タイトルとURLをコピーしました