Sou iniciante em programação em C e estou com uma duvida nesse código, ele basicamente calcula a menor quantidade de moedas que serão utilizadas para dar troco ao usuário, o código tá funcionando e tal, mas ele sempre deixa um resto de 0.01 que é correspondente a 1 centavo e eu não sei como fazer com que ele não deixe mais esse resto.
Se alguém souber como fazer isso por favor me ajudem.
#include <cc50.h>
#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
//Pergunta ao usuario o troco que ele tem que receber
printf("quanto de troco você quer receber? \n");
float troco = GetFloat();
//variavel usada no While
int fim = 1;
//contador de quantas moedas vão ser necessarias
int contador = 0;
// Loop que vai calcular a menor quantidade de moedas para o troco do cliente
do
{
if(troco >= 0.25){
contador++;
troco = troco - 0.25;
} else if (troco >= 0.10){
contador++;
troco = troco - 0.10;
} else if (troco >= 0.05){
contador++;
troco = troco - 0.05;
} else if (troco >= 0.010){
contador++;
troco = troco - 0.01;
} else{
fim = 0;
}
}
while(fim == 1);
//imprimi a quantidade de moedas que o while calculou
printf("%d\n",contador);
}
cc50_c_library.zip