Informática, perguntado por dreiamuraro, 1 ano atrás

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

Respondido por lucasdasilva12j
0

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.

Anexos:
Perguntas interessantes