Olá, estou com problemas na impressão de porcentagem e nos acumuladores.
Meu programa recebe um número inteiro que informa quantos dados ira receber(como string), depois receber os dados como string ele os transforma em inteiro e caractere:
Ex: 24 C, 10 S, 5 R (24 coelhos, 10 sapos, 5 ratos), Este é o problema 1094 do uri.
O código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(){
int i, count, n1, n2, coelho=0, rato=0, sapo=0, total=0;
float result;
char dados[5], tipo;
scanf("%d",&count); //Quantidade de vezes(for).
for(i=0;i<count;i++){
if(dados[1]!=32){ //dados posição 1 diferente de espaço(numero maior que 9)
setbuf(stdin, NULL);
gets(dados);
setbuf(stdin, NULL);
n1=dados[0] - 48;
n2=dados[1] - 48;
n1=n1*10+n2; //concatenação de inteiro
tipo=dados[3]; // acumuladores com problema
if(tipo==67) coelho+=n1; //tabela ascii
if(tipo==82) rato+=n1;
if(tipo==83) sapo+=n1;
total+=n1;
}else{ // else, numero menor que 10
setbuf(stdin, NULL);
gets(dados);
setbuf(stdin, NULL);
n1=dados[0]-48;
tipo=dados[2]; // acumuladores com problema
if(tipo==67) coelho+=n1;
if(tipo==82) rato+=n1;
if(tipo==83) sapo+=n1;
total+=n1;
}
}
printf("Total: %d cobaias\n",total);
printf("Total de coelhos: %d\n",coelho);
printf("Total de ratos: %d\n",rato);
printf("Total de sapos: %d\n",sapo);
result=coelho/total*100; // porcentagem de cobaias (erro: result não recebe resultado)
printf("Percentual de coelhos: %2.f %%\n",result);
result=rato/total*100;
printf("Percentual de ratos: %2.f %%\n",result);
result=sapo/total*100;
printf("Percentual de sapos: %2.f %%\n",result);
getch();
return 0;
}