Untitled
user_2455805
plain_text
3 years ago
2.0 kB
14
Indexable
#include<stdio.h>
#include<math.h>
#include<cs50.h>
int main()
{
//Declaração das variáveis
int moeda, cont, valor, total;
float num = 0;
while (num <= 0)
{
num = get_float("\nChange Owed: "); //Comando de entrada devidamente validado pelo CS50
}
valor = round(num * 100); //Transformando número real em inteiro andando duas casas decimais para direita
total = valor; //Total sendo colocando em outra variável para ser fatiado
moeda = 25; //Moeda de valor máximo, que depois irá armazenar as moedas de menor valor
cont = 0; // Contador da quantidade de moedas usadas para entregar o troco certo.
while (true)
{
if (total >= moeda) //Enquanto o valor recebido for maior que a moeda máxima;
{
total -= moeda; //Sera retirado do valor 25 unidades do valor recebido;
cont += 1; //No próximo laço, o valor recebido estará com menos 25 unidades, e no próximo laço -25...
}
else
{
if (moeda == 25) //Quando não der para subtrair por 25(que é a moeda máxima)
{
moeda = 10; //Então a variável moeda assumirá um valor abaixo, que é 10.
}
else if (moeda == 10) //Quando não for possível subtrair o total restante por 10;
{
moeda = 5; //Então a variável moeda passa a assumir o valor de 5.
}
else if (moeda == 5) // Não sendo possível subtrair cinco unidades do total restante;
{
moeda = 1; //A variável moeda passa assumir o valor de 1 e irá até finalizar o valor total.
}
else
{
break; //Por se tratar de um while(true), o break é necessário para sair do loop.
}
}
}
//Exibição do resultado, conforme solicitado
printf("\n%d\n\n", cont);
}
Editor is loading...