DESAFIO 2: Uma dona de casa precisa pagar a empregada doméstica e a babá e quer sair do
banco apenas com a quantia necessária para pagá-las. O problema é que as funcionárias não
podem dar troco, então ela precisa saber quantas notas de cada valor vai precisar para
efetuar o pagamento.
Por exemplo, para pagar R$510,00 e R$490,00, não é suficiente ter 10 notas de R$100,00;
são necessárias 9 notas de R$100,00, 1 nota de R$50,00, 2 notas de R$20,00 e 1 nota de
R$10,00.
Faça um programa que leia o valor dos dois salários e calcule o número de notas necessárias
para efetuar os pagamentos. A dona de casa não quer andar com moedas nem notas de
R$2,00 e os salários devem ser arredondados para cima (um número múltiplo de 5).
Gostaria da resposta em linguagem C?
Soluções para a tarefa
Código:
#include<stdio.h>
int main()
{
int resto=1, valor, valor2, cem, cinquenta, vinte, dez, resto_cem, resto_cinquenta, resto_vinte, resto_dez, cinco, cem2, cinquenta2, vinte2, dez2, resto_cem2, resto_cinquenta2, resto_vinte2, resto_dez2, cinco2;
printf("=========ATENCAO, PROGRAMA VALIDO APENAS PARA SALARIOS MAIORES QUE 100 REAIS==============\n\n\n");
printf("DIGITE O PRIMEIRO SALARIO A SER PAGO: ");
scanf(" %d", &valor);
printf("DIGITE O SEGUNDO SALARIO A SER PAGO: ");
scanf(" %d", &valor2);
while(resto!=0)
{
resto=valor%5;
if(resto!=0)
{
valor++;
}
}
resto=1;
while(resto!=0)
{
resto=valor2%5;
if(resto!=0)
{
valor2++;
}
}
cem=valor/100;
resto_cem=valor%100;
cinquenta=resto_cem/50;
resto_cinquenta=valor%50;
vinte=resto_cinquenta/20;
if((cinquenta*50)-(vinte*20)==50)
{
resto_vinte=0;
}
else
{
resto_vinte=valor%20;
}
dez=resto_vinte/10;
resto_dez=valor%10;
cinco=resto_dez/5;
cem2=valor2/100;
resto_cem2=valor2%100;
cinquenta2=resto_cem2/50;
resto_cinquenta2=valor2%50;
vinte2=resto_cinquenta2/20;
if((cinquenta2*50)-(vinte2*20)==50)
{
resto_vinte2=0;
}
else
{
resto_vinte2=valor2%20;
}
dez2=resto_vinte2/10;
resto_dez2=valor2%10;
cinco2=resto_dez2/5;
printf(" PRECISARA DE:\n\n %d NOTAS DE 100\n %d NOTAS DE 50\n %d NOTAS DE 20\n %d NOTAS DE 10 \n %d NOTAS DE 5.", (cem+cem2), (cinquenta+cinquenta2), (vinte+vinte2), (dez+dez2), (cinco+cinco2));
}
O código ficou grande pois optei por não usar vetor. Fiz isso pois não sei se já viu vetores nos seus estudos ou não.
Porém a sua lógica não é difícil de entender.
O código só funciona bem com salários acima de 100 reais, pois se não, eu teria que colocar mais uma condição, e achei que ficaria grande demais.
Espero que consiga ler o código, e que principalmente, consiga entender a lógica.
Pode ter outras maneiras de fazer, porém agora só me veio essa na cabeça sem usar vetor.