TEMA
erro de 10%
refcassiolato preguntado 6 years ago
Meu código está dando erro de 10%, alguem consegue me mandar umas combinacoes para eu testar e ver aonde está o erro?
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int vitamins(char alimento[16]) { char alimentoF1[16]; char alimentoF2[16]; char alimentoF3[16]; char alimentoF4[16]; char alimentoF5[16]; char alimentoF6[16]; char *alimentoF7[16];
strcpy(alimentoF1, "suco de laranja");
strcpy(alimentoF2, "morango fresco");
strcpy(alimentoF3, "mamao");
strcpy(alimentoF4, "goiaba vermelha");
strcpy(alimentoF5, "manga");
strcpy(alimentoF6, "laranja");
strcpy(alimentoF7, "brocolis");
if(!strcmp(alimentoF1, alimento))
return 1;
else if(!strcmp(alimentoF2, alimento))
return 2;
else if(!strcmp(alimentoF3, alimento))
return 3;
else if(!strcmp(alimentoF4, alimento))
return 4;
else if(!strcmp(alimentoF5, alimento))
return 5;
else if(!strcmp(alimentoF6, alimento))
return 6;
else if(!strcmp(alimentoF7, alimento))
return 7;
else
return 0;
}
int compare(int temp) { if(temp == 1) { return 120; }
else if(temp == 2)
{
return 85;
}
else if(temp == 3)
{
return 85;
}
else if(temp == 4)
{
return 70;
}
else if(temp == 5)
{
return 56;
}
else if(temp == 6)
{
return 50;
}
else if(temp == 7)
{
return 34;
}
}
int main () { int T = 0, i = 0, a = 0, total = 0, mud = 0; int temp[6] = {0 , 0 , 0 , 0 , 0, 0, 0}; int qtd[6] = {0,0,0,0,0,0,0};
char *alimento[16];
scanf("%d", &T);
do{
scanf("%d ", &qtd[i]);
gets(alimento);
temp[i] = vitamins(alimento);
i++;
}while(i < T);
for(i = 0; i < T; i++)
{
total+= (compare(temp[i]) * qtd[i]);
}
if(total < 110)
{
mud = 110 - total;
printf("Mais %d mg", mud);
}
else if(total >= 110 && total <= 130)
{
printf("%d mg", total);
}
else if(total > 130)
{
mud = total - 130;
printf("Menos %d mg", mud);
}
return 0;
}