Ir para conteúdo
Fórum Script Brasil

Hellhammer

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Hellhammer

Hellhammer's Achievements

0

Reputação

  1. Olá pessoal, Sou novato em programação. Meu professor pediu para eu resolver a seguinte situação: "Construa um programa que implementa o módulo de saque de um caixa eletrônico. Todo caixa eletrônico deve possuir algum mecanismo para decidir o número de notas de cada valor que deve ser disponibilizado para o cliente que realizou o saque. Um possível critério seria o da 'distribuição ótima' no sentido de que as notas de menor valor fossem distribuídas em uma quantidade mínima possível. Por exemplo, se a quantia solicitada fosse R$ 87,00, o programa deveria indicar uma nota de R$ 50,00, uma nota de R$ 20,00, uma nota de R$ 10,00, uma nota de R$ 5,00 e uma nota de R$ 2,00. Desenvolva um programa, que receba o valor da quantia solicitada e retorne a distribuição das notas de acordo com o critério da distribuição ótima. Considere que o caixa eletrônico possua as seguintes cédulas: R$2,00, R$5,00, R$10,00, R$20,00, R$50,00 e R$100,00 e que a nossa solução deve implementar a distribuição ótima." E eu fiz ele da seguinte forma em C: #include <stdio.h> int main (int argc, char** argv) { int saque=0, nota2=0, nota5=0, nota10=0, nota20=0, nota50=0, nota100=0; printf ("Digite o valor de saque desejado em R$:\n"); scanf ("%d",&saque); if (!(saque > 0)) { printf("Valor do saque inoperante.\n"); return 0; } while (saque >= 100) { saque = saque - 100; nota100++; } while (saque >= 50) { saque = saque - 50; nota50++; } while (saque >= 20) { saque = saque - 20; nota20++; } while (saque >= 10) { saque = saque - 10; nota10++; } while (saque >= 5) { saque = saque - 5; nota5++; } while (saque >= 2) { saque = saque - 2; nota2++; } printf ("Temos:\n"); printf ("%d nota(s) de R$ 100,00;\n",nota100); printf ("%d nota(s) de R$ 50,00;\n",nota50); printf ("%d nota(s) de R$ 20,00;\n",nota20); printf ("%d nota(s) de R$ 10,00;\n",nota10); printf ("%d nota(s) de R$ 5,00;\n",nota5); printf ("%d nota(s) de R$ 2,00.\n",nota2); return 0; } Quando eu vou fazer o teste com o valor de R$ 87,00, funciona legal. Meu problema é quando eu coloco um valor ímpar, por exemplo R$ 101,00. Neste caso ele só me retorna uma nota de 100 e 'engole' um real. R$ 101,00 deveria retornar: 0 nota(s) de R$ 100,00; 1 nota(s) de R$ 50,00; 2 nota(s) de R$ 20,00; 1 nota(s) de R$ 5,00; 3 notas(s) de R$ 2,00. Pois então, eu vejo o problema mas eu não tenho a maturidade o suficiente pra saber por onde eu começo pra chegar em tais resultados. Queria saber qual é o método que eu devo usar pra resolver. Obrigado!
×
×
  • Criar Novo...