Esse processo deve receber um valor de troco e calcular quantas moedas de cada valor são necessárias para o troco. Por exemplo, se o troco for de R$ 0,85, serão necessárias uma moeda de 0,50, uma de 0,25 e uma de 0,10.
Ele deve receber um valor e imprimir a quantidade de cada moeda.
#include <stdlib.h>
#include <stdio.h>
int main()
{
float troco;
int t100, t050, t025, t010, t005, t001;
t100=0;
t050=0;
t025=0;
t010=0;
t005=0;
t001=0;
troco=0;
system("CLS");
printf("Informe o Troco ");
scanf("%f",&troco);
while (troco > 0)
{
if (troco >= 1)
{
troco=troco-1;
t100++;
} else if (troco >= 0.50)
{
troco=troco-0.50f;
t050++;
} else if (troco >= 0.25)
{
troco=troco-0.25f;
t025++;
} else if (troco >= 0.10)
{
troco=troco-0.10f;
t010++;
} else if (troco >= 0.05)
{
troco=troco-0.05f;
t005++;
} else if (troco >= 0.01)
{
troco=troco-0.01f;
t001++;
}
}
if (t100 > 0)
printf("%i Moeda(s) de um Real\n",t100);
if (t050 > 0)
printf("%i Moeda(s) de Cinquenta Centavos\n",t050);
if (t025 > 0)
printf("%i Moeda(s) de Vinte e Cinco Centavos\n",t025);
if (t010 > 0)
printf("%i Moeda(s) de Dez Centavos\n",t010);
if (t005 > 0)
printf("%i Moeda(s) de Cinco Centavos\n",t005);
if (t001 > 0)
printf("%i Moeda(s) de Um Centavo\n",t001);
printf("\n");
system("PAUSE");
return 0;
}
Quando tem valores que o troco precisa de moedas de 0,10 - 0,05 - 0,01 ele fica em loop eterno é como se perdesse a precisão na hora de diminui o valor do troco... já tentei mudar pra double mas simplesmente acontece nada
Pergunta
Dorivan Silva Sousa
Esse processo deve receber um valor de troco e calcular quantas moedas de cada valor são necessárias para o troco. Por exemplo, se o troco for de R$ 0,85, serão necessárias uma moeda de 0,50, uma de 0,25 e uma de 0,10.
Ele deve receber um valor e imprimir a quantidade de cada moeda.
#include <stdlib.h> #include <stdio.h> int main() { float troco; int t100, t050, t025, t010, t005, t001; t100=0; t050=0; t025=0; t010=0; t005=0; t001=0; troco=0; system("CLS"); printf("Informe o Troco "); scanf("%f",&troco); while (troco > 0) { if (troco >= 1) { troco=troco-1; t100++; } else if (troco >= 0.50) { troco=troco-0.50f; t050++; } else if (troco >= 0.25) { troco=troco-0.25f; t025++; } else if (troco >= 0.10) { troco=troco-0.10f; t010++; } else if (troco >= 0.05) { troco=troco-0.05f; t005++; } else if (troco >= 0.01) { troco=troco-0.01f; t001++; } } if (t100 > 0) printf("%i Moeda(s) de um Real\n",t100); if (t050 > 0) printf("%i Moeda(s) de Cinquenta Centavos\n",t050); if (t025 > 0) printf("%i Moeda(s) de Vinte e Cinco Centavos\n",t025); if (t010 > 0) printf("%i Moeda(s) de Dez Centavos\n",t010); if (t005 > 0) printf("%i Moeda(s) de Cinco Centavos\n",t005); if (t001 > 0) printf("%i Moeda(s) de Um Centavo\n",t001); printf("\n"); system("PAUSE"); return 0; }Quando tem valores que o troco precisa de moedas de 0,10 - 0,05 - 0,01 ele fica em loop eterno é como se perdesse a precisão na hora de diminui o valor do troco... já tentei mudar pra double mas simplesmente acontece nada
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.