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?)