Encontrando o Segundo Maior Número em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como encontrar o segundo maior número de três números inseridos pelo usuário na linguagem de programação C. Usaremos um algoritmo que utiliza loops if-else aninhados para encontrar o segundo maior número.

Nota: Você precisa criar o arquivo ~/project/main.c por conta própria para praticar a codificação e aprender como compilar e executá-lo usando o gcc.

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

Declarar Três Variáveis

O primeiro passo é declarar três variáveis do tipo de dados double. Estes serão os três números que receberemos como entrada do usuário.

#include <stdio.h>

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

    // rest of the code
}

Obter Entrada do Usuário

O próximo passo é receber a entrada do usuário para as três variáveis declaradas no passo anterior. Usaremos a função scanf para receber a entrada.

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

Encontrar o Segundo Maior Número

Agora, vamos encontrar o segundo maior número usando laços if-else aninhados.

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);
    }
}

Completar o Programa

Vamos juntar todo o código que escrevemos até agora para completar o programa.

#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;
}

Resumo

Neste laboratório, aprendemos como encontrar o segundo maior número de três números inseridos pelo usuário usando laços if-else aninhados. Esperamos que este laboratório tenha ajudado você a entender este algoritmo e como ele pode ser implementado na linguagem de programação C.