TOPIC

Runtime error

gmgomes4 asked 3 years ago

Fala galera, alguém poderia me ajudar a encontrar o erro? Muito obrigado!

Question solved. Code removed.

This topic was solved and cannot recieve new replies.

  • castro95 replied 3 years ago

    Fala ae!

    #include <stdio.h>
    
    int main()
    {
        int n, i, quantia, total = 0, tcoelho = 0, trato = 0, tsapo = 0;
        char tipo;
        double percentc = 0, percentr = 0, percents = 0;
    
        scanf("%i", &n);
    
        for(i = 0; i < n; i++)
        {
            scanf("%i %c", &quantia, &tipo);
    
            total += quantia;
    
            if(tipo == 'C')
            {
                tcoelho += quantia;
            }
            else if(tipo == 'R')
            {
                trato += quantia;
            }
            else if(tipo == 'S')
            {
                tsapo += quantia;
            }
        }
    
        percentc = (double)(tcoelho * 100) / total;
        percentr = (double)(trato * 100) / total;
        percents = (double)(tsapo * 100) / total;
        printf("Total: %i cobaias\n", total);
        printf("Total de coelhos: %i\n", tcoelho);
        printf("Total de ratos: %i\n", trato);
        printf("Total de sapos: %i\n", tsapo);
        printf("Percentual de coelhos: %.2lf %\n", percentc);
        printf("Percentual de ratos: %.2lf %\n", percentr);
        printf("Percentual de sapos: %.2lf %\n", percents);
    
        return 0;
    }

    Eu suspeito que seja por conta do cast (float) com uma divisão com um double mas... não faço ideia =\

    O código acima passa sem problemas.

    Para averiguar mesmo o que está acontecendo, precisa rodar local com a flag:

    gcc -ansi -O2 yourcode.c -o yourcode -lm

    Isso está no FAQ do URI (Por que minha submissão em C leva 'Compilation Error' se localmente não tenho problemas?)