Olá, estou tentando fazer um programa em que eu digite o valor e ele me diga quantas notas de 100,50,20,10,5 são necessárias e a mesma coisa para as moedas em valores de 1 , 0.50 , 0.25 ,0.10 , 0.01
O meu problema é que coloco um valor, mas está saindo errado nas moedas de 0.01, saindo com uma moeda a menos do que deveria.
#include <stdio.h>
int main()
{
double valor;
int v100,c50,c25,c10,c5,c1;
int v50;
int v20;
int v10;
int v5;
int v2;
int v1;
scanf("%lf",&valor);
printf("%.2lf\n",valor);
v100=valor/100;
valor=valor - v100*100;
v50=valor/50;
valor=valor-v50*50;
v20=valor/20;
valor=valor-v20*20;
v10=valor/10;
valor=valor-v10*10;
v5=valor/5;
valor=valor -v5*5;
v2=valor/2;
valor=valor-v2*2;
v1=valor;
valor=valor-v1*1;
valor=valor*100;
c50=valor/50;
valor=valor-c50*50;
c25=valor/25;
valor=valor-c25*25;
c10=valor/10;
valor=valor-c10*10;
c5=valor/5;
valor=valor-c5*5;
c1=valor;
printf("NOTAS:\n");
printf("%d nota(s) de R$ 100,00\n",v100);
printf("%d nota(s) de R$ 50,00\n",v50);
printf("%d nota(s) de R$ 20,00\n",v20);
printf("%d nota(s) de R$ 10,00\n",v10);
printf("%d nota(s) de R$ 5,00\n",v5);
printf("%d nota(s) de R$ 2,00\n",v2);
printf("MOEDAS:\n");
printf("%d moeda(s) de R$ 1.00\n",v1);
printf("%d moeda(s) de R$ 0.50\n",c50);
printf("%d moeda(s) de R$ 0.25\n",c25);
printf("%d moeda(s) de R$ 0.10\n",c10);
printf("%d moeda(s) de R$ 0.05\n",c5);
printf("%d moeda(s) de R$ 0.01\n",c1);
}
Se eu coloco 576.76, o programa diz 0 moedas de 0.01
Se coloco 10.07, ele faz certo e coloca duas moedas de 0.01
Em alguns casos dá certo.