在 C 语言中找出第二大的数字

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 C 编程语言中找出三个用户输入数字中的第二大的数字。我们将使用一个利用嵌套 if-else 循环的算法来找到第二大的数字。

注意:你需要自己创建文件 ~/project/main.c 来练习编码,并学习如何使用 gcc 编译和运行它。

cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/data_types("Data Types") c/BasicsGroup -.-> c/operators("Operators") c/ControlFlowGroup -.-> c/if_else("If...Else") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123331{{"在 C 语言中找出第二大的数字"}} c/data_types -.-> lab-123331{{"在 C 语言中找出第二大的数字"}} c/operators -.-> lab-123331{{"在 C 语言中找出第二大的数字"}} c/if_else -.-> lab-123331{{"在 C 语言中找出第二大的数字"}} c/user_input -.-> lab-123331{{"在 C 语言中找出第二大的数字"}} c/output -.-> lab-123331{{"在 C 语言中找出第二大的数字"}} end

声明三个变量

第一步是声明三个 double 数据类型的变量。这些变量将用于存储用户输入的三个数字。

#include <stdio.h>

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

    // rest of the code
}

获取用户输入

下一步是从用户那里获取上一步中声明的三个变量的输入。我们将使用 scanf 函数来接收输入。

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

找出第二大的数字

现在,让我们使用嵌套的 if-else 循环来找出第二大的数字。

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 循环从三个用户输入的数字中找出第二大的数字。我们希望这个实验能帮助你理解这个算法以及如何在 C 编程语言中实现它。