Na cantina de uma escola, está disponível uma máquina de venda de chocolates. O
chocolate custa R$ 2,00. É necessário programar a máquina para calcular o troco a ser dado
ao cliente. Escreva um programa, que receba como entrada a quantidade de chocolates
desejada e o valor pago pelo cliente (considere que o valor pago é suficiente para realizar o
pagamento) e mostre a quantidade de notas de cada valor que deve ser entregue ao cliente
como troco. O troco dever ser fornecido considerando o critério da "distribuição ótima", onde
as notas de menor valor são distribuídas em número mínimo possível. Considere que a
máquina dispõe de notas no valor de R$ 20, R$ 10, R$ 5 e R$ 2 e moedas de R$ 1. Por
exemplo, se o cliente pagou R$ 50,00, para pagar 6 chocolates (12 reais) o programa deve
indicar como troco: uma nota de R$ 20,00, uma nota de R$10,00, uma nota de R$ 5,00, uma
nota de R$ 2,00 e uma moeda de R$ 1,00.
Soluções para a tarefa
Resposta:
#include <stdlib.h>
#include <stdio.h>
int main(){
int qtd, valor_pago, valor_total, troco, troco_restante;
int nota20, nota10, nota5, nota2, moeda1;
printf("Chocolate custa R$2,00.\n\n");
printf("Quantidade de chocolates: ");
scanf("%d", &qtd);
valor_total = (qtd * 2);
printf("Valor total: R$%d.\n\n", valor_total);
printf("Pagamento: ");
scanf("%d", &valor_pago);
troco = (valor_pago - valor_total);
printf("Troco: R$%d.\n", troco);
troco_restante = troco;
if(troco_restante >= 20){
nota20 = troco / 20;
troco_restante = troco - (nota20*20);
printf("%d nota(s) de R$20.00\n", nota20);
}
if(troco_restante >= 10){
nota10 = troco_restante / 10;
printf("%d nota(s) de R$10.00\n", nota10);
troco_restante = troco_restante - (nota10*10);
}
if(troco_restante >= 5){
nota5 = troco_restante / 5;
printf("%d nota(s) de R$5.00\n", nota5);
troco_restante = troco_restante - (nota5*5);
}
if(troco_restante >= 2){
nota2 = troco_restante / 2;
printf("%d nota(s) de R$2.00\n", nota2);
troco_restante = troco_restante - (nota2*2);
}
if(troco_restante >= 1){
moeda1 = troco_restante;
printf("%d moeda de R$1.00\n", moeda1);
}
return 0;
}