C 言語で 2 番目に大きい数を見つける

CBeginner
オンラインで実践に進む

はじめに

この実験では、C プログラミング言語を使って、ユーザーが入力した 3 つの数値の中から 2 番目に大きい数を見つける方法を学びます。ネストされた if-else ループを利用したアルゴリズムを使って 2 番目に大きい数を見つけます。

注意:コーディングの練習と、gcc を使ってコンパイルし実行する方法を学ぶために、~/project/main.c ファイルを自分で作成する必要があります。

cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main

3 つの変数を宣言する

最初のステップは、double データ型の 3 つの変数を宣言することです。これらは、ユーザーから入力として受け取る 3 つの数値になります。

#include <stdio.h>

int main()
{
    double num1, num2, num3;

    // rest of the code
}

ユーザーから入力を取得する

次のステップは、前のステップで宣言した 3 つの変数に対して、ユーザーからの入力を受け取ることです。入力を受け取るために scanf 関数を使用します。

printf("Enter three numbers: ");
scanf("%lf %lf %lf", &num1, &num2, &num3);

2 番目に大きい数を見つける

では、ネストされた if-else ループを使って 2 番目に大きい数を見つけましょう。

if (num1 > num2 && num1 > num3)
{
    if (num2 > num3)
    {
        printf("Second largest number: %.2lf", num2);
    }
    else
    {
        printf("Second largest number: %.2lf", num3);
    }
}
else if (num2 > num1 && num2 > num3)
{
    if (num1 > num3)
    {
        printf("Second largest number: %.2lf", num1);
    }
    else
    {
        printf("Second largest number: %.2lf", num3);
    }
}
else
{
    if (num1 > num2)
    {
        printf("Second largest number: %.2lf", num1);
    }
    else
    {
        printf("Second largest number: %.2lf", num2);
    }
}

プログラムを完成させる

これまでに書いたコードをすべてまとめて、プログラムを完成させましょう。

#include <stdio.h>

int main()
{
    double num1, num2, num3;

    printf("Enter three numbers: ");
    scanf("%lf %lf %lf", &num1, &num2, &num3);

    if (num1 > num2 && num1 > num3)
    {
        if (num2 > num3)
        {
            printf("Second largest number: %.2lf", num2);
        }
        else
        {
            printf("Second largest number: %.2lf", num3);
        }
    }
    else if (num2 > num1 && num2 > num3)
    {
        if (num1 > num3)
        {
            printf("Second largest number: %.2lf", num1);
        }
        else
        {
            printf("Second largest number: %.2lf", num3);
        }
    }
    else
    {
        if (num1 > num2)
        {
            printf("Second largest number: %.2lf", num1);
        }
        else
        {
            printf("Second largest number: %.2lf", num2);
        }
    }

    return 0;
}

まとめ

この実験では、ネストされた if-else ループを使用して、ユーザーが入力した 3 つの数値の中から 2 番目に大きい数を見つける方法を学びました。この実験が、このアルゴリズムとそれが C プログラミング言語でどのように実装されるかを理解するのに役立ったことを願っています。