TOPIC

Erro na validação do valor de entrada (C)

aruiz1 asked 5 years ago

O problema pede uma restrição na entrada do valor da variável n. Se esta restrição é aplicada com do/while, apesar de funcionar perfeitamente no codeblocks, recebo 100% de erro. Postei a mesma solução, desta vez sem considerar a restrição, e o sistema aceitou como correto. Não é a primeira vez que isso acontece. Alguma ideia? Só para que fique registrado, o do/while que utilizei é este abaixo:

 do{
       scanf("%d", &n);
}while(n<100 || n>100000);

Removi e a aceitação foi imediata.

É isso.

Remember not post solutions. Your post may be reviewed by our moderators.

  • marqueslua replied 3 years ago

    Você não precisa desse do while. Essa restrição o próprio problema te dá, ele está te garantindo que não vão haver valores fora do intervalo entre 100 e 100000. Você nao precisa verificar

  • feodorv replied 5 years ago

    How did you cope with C (the number of test cases)? I mean when you checked the input with

    do{ scanf("%d", &n); }while(n<100 || n>100000);
  • aruiz1 replied 5 years ago

    That is the code with 5% wrong:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int c = 0;
        int n = 0;
    
        do
            {
                scanf("%d", &c);
            }while(c<1);
    
        while(c>0)
        {
            do
            {
                scanf("%d", &n);
            }while(n<100 || n>100000);
    
            if (n<=8000)
            {
                printf("Inseto!\n");
            }
            else
            {
                printf("Mais de 8000!\n");
            }
    
            c--;
        }
    
        return 0;
    }