Programação Imperativa

100 Questões Fichas Testes/Exames

Questão 3: segundoMaior

Voltar

Defina um programa que lê (usando a função scanf) uma sequência de números inteiros terminada com o número 0 e imprime no ecrã o segundo maior elemento.

Exemplo

Resolução

void three() {
    int biggest = INT_MIN, second_biggest = INT_MIN, num;
    while(1) {
        assert(scanf("%d",&num) == 1);
        if(num == 0) break;
        if(num > biggest) {
            second_biggest = biggest;
            biggest = num;
        } else if (num > second_biggest) second_biggest = num;
    }
    printf("Segundo maior número: %d\n", second_biggest);
}