1002: C 言語で 3 つの数値の最大値を記述する 7 つの方法

1002: 3 つの数値の最大値を求めます

問題の説明:

3つの値a、b、cを入力して最大値を出力するプログラムを書きます。

入力:配列の行、それぞれ abc

出力: abcその中で最大の数

入力例: 10 20 30

出力例: 30

ヒント: C 言語プログラミング チュートリアル (第 3 版) 授業後の演習 1.6

コード:

方法 1: a が最大値であると仮定し、4 番目の変数を導入し、それをそれぞれ b および c と比較します。

#include<stdio.h>
int main()
{
    int a, b, c;
    int max = 0;
    scanf("%d %d %d", &a, &b, &c);
    max = a;

    if (max < b)
    { 
        max = b;
    }
    if (max < c)
    {
        max = c;
    }

    printf("%d", max);
}

方法 2: 4 番目の変数を省略し、変数 a を直接最大値として使用します。

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);

    if (a < b) 
    {
        a = b;
    }
    if (a < c) 
    {
        a = c;
    }
    printf("%d", a);

    return 0;
}

方法 3: 直接比較、ネストされた if else ループ、最も多くの出力を出した人。

#include <stdio.h>

int main()
{
    int a,b,c;
    scanf("%d %d %d", &a, &b, &c);

    if (a > b)
    {
        if (a > c)
        {
            printf("%d", a);
        }
        else
        {
            printf("%d", c);
        }
    }
    if (b > c)
        {
            printf("%d", b);
        }
        else
        {
            printf("%d", c);
        }

    return 0;
}

方法 4: 方法 3 と同じように && を使用してネストを回避します。

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);

    if (a >= b && a >= c) {
        printf("%d" ,a);
    }
    else if (b >= a && b >= c) {
        printf("%d", b);
    }
    else {
        printf("%d", c);
    }

    return 0;
}

方法 5: 三項演算子 (4 番目の変数なし)

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%d", a > b ? (a > c ? a : c) : (b > c ? b : c));
}

方法 6: 三項演算子 (4 番目の変数を使用)

#include<stdio.h>
int main()
{
    int a, b, c;
    int max = 0;
    scanf("%d %d %d", &a, &b, &c);

    max = (a > b) ? a : b;
    max = (max > c) ? max : c;

    printf("%d", max);
}

方法 7: 三項演算子 (a を 4 番目の変数として使用)

#include<stdio.h>
int main()
{
    int a, b, c;
    int max = 0;
    scanf("%d %d %d", &a, &b, &c);
    a = (a > b) ? a : b;
    a = (a > c) ? a : c;
    printf("%d", a);
}

分析:

        この問題は、3 つの数値の最大値を求めるだけで、あまり数学的思考は必要ありませんが、C 言語の変数代入、ループの入れ子、三項演算子の性質を利用することで、さまざまな方法で解くことができます。古典的な質問。

おすすめ

転載: blog.csdn.net/m0_61409069/article/details/126191849