Verificar pequeno problema em C

bloodrider

Power Member
Boas!

Tenho este código para o seguinte enunciado: É inserida uma sequência de números, que termina quando é inserido o 0. No fim diz qual é o menor número maior do que o primeiro a ser inserido.

Código:
#include <stdio.h>

int main()
{
    int primeiro, input, menor, sair;

    printf("Insira o nº referencia: ");
    scanf("%d", &primeiro);
    
    printf("Insira outro nº: ");
    scanf("%d", &input);
    
    if(input > primeiro)
    {menor = input;}
    else
    {   
        if(input == 0)
        {
                 sair = 1;
        }
        else
        {   
            while(input < primeiro)
            {
                        if(input == 0)
                        {
                                 sair = 1;
                                 input = input + primeiro;
                        }
                        else
                        {
                                        printf("Insira outro nº: ");
                                        scanf("%d", &input);
                        }
            }
        }
    }
                
                
    if(sair == 1)
    {
                printf("nao existe nenhum\n\n");
                system("pause");
    }
    else
    {
        while(input != 0)
        {
                if(input > primeiro && input < menor)
                {
                         menor = input;
                }
                
                printf("Insira outro nº: ");
                scanf("%d", &input);
        }
        printf("O menor é: %d\n\n", menor);
        system("pause");
    }
}

Provavelmente o código podia ser melhor, mas só quero confirmar se o código resolve todas as situações ;)
 
Creio que sim...compila e faz alguns testes...

No entanto acho que esse código podia ser muito mais comprimido..

Já o testei :P é só mesmo para ter a certeza que não me escapou nada!
Tal como eu tinha dito, provavelmente pode-se poupar umas linhas de código, mas só me interessa que esteja a funcionar :)
 
Back
Topo