Ir ao conteúdo

Posts recomendados

Postado

Boa tarde pessoal, eu to fazendo uma atividade em c++ que o enunciado é o seguinte:

 

"Um programa para gerenciar os saques de um 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 número mínimo possível. Por exemplo, se a quantia solicitada for R$ 87,00, o programa deveria indicar uma nota de R$ 50,00, uma de R$ 20,00, uma de R$ 10,00, uma nota de R$ 5,00 e outra de R$ 2,00. Escreva 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."

 

por exemplo, o usuário quer sacar 98 reais, tem que dar algo assim:

 

1 nota de R$ 50,00
2 notas de R$ 20,00
1 nota de R$ 5,00
1 nota de R$ 2,00
1 nota de R$ 1,00

 

o meu código está praticamente pronto mas eu empaquei naquele "notas", o que eu tenho que mudar no meu código pra em vez de "2 nota de R$20,00" aparecer "2 notas de R$20,00" eu acredito ser algo bem simples que quando eu resolver vou ficar tipo "nossa como que não vi isso antes" mas eu realmente estou com uma trava mental nisso.

 

Segue meu código até agora: 

#include<stdlib.h>
#include<stdio.h>

int main() {

    int saque;
    int resto50, resto20, resto10, resto5, resto2;
    int nota50, nota20, nota10, nota5, nota2, nota1;

    do {
        //printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 1 == 0){
            nota50 = saque / 50;
            resto50 = saque % 50;
          
            nota20 = resto50 / 20;
            resto20 = resto50 % 20;
          
            nota10 = resto20 / 10;
            resto10 = resto20 % 10;
          
            nota5 = resto10 / 5;
            resto5 = resto10 % 5;

            nota2 = resto5 / 2;
            resto2 = resto5 % 2;

            nota1 = resto2 / 1;
          
        }
    }
    while (saque % 1 != 0);

if(nota50>0){
  printf("%d nota de R$ 50,00\n",nota50);
}

if(nota20>0){
  printf("%d nota de R$ 20,00\n",nota20);
}
if(nota10>0){
  printf("%d nota de R$ 10,00\n",nota10);
}
if(nota5>0){
  printf("%d nota de R$ 5,00\n",nota5);
}
if(nota2>0){
  printf("%d nota de R$ 2,00\n",nota2);
}
if(nota1>0){
  printf("%d nota de R$ 1,00\n",nota1);
}
    return 0;
}

 

Estou pedindo isso por que meu professor usa uma ferramenta que tem que estar certinho o input e output pra dar certa a questão e está acusando só isso de erro, obrigado ai se conseguirem me ajudar.

Não precisa mais galera kkkk eu continuei tentando aqui e consegui, só fiz mais um if em cada printf pra fazer outro teste se nota>1 e coloquei o printf de "nota" em um else.

 

#include<stdlib.h>
#include<stdio.h>

int main() {

    int saque;
    int resto50, resto20, resto10, resto5, resto2;
    int nota50, nota20, nota10, nota5, nota2, nota1;

    do {
        //printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 1 == 0){
            nota50 = saque / 50;
            resto50 = saque % 50;
          
            nota20 = resto50 / 20;
            resto20 = resto50 % 20;
          
            nota10 = resto20 / 10;
            resto10 = resto20 % 10;
          
            nota5 = resto10 / 5;
            resto5 = resto10 % 5;

            nota2 = resto5 / 2;
            resto2 = resto5 % 2;

            nota1 = resto2 / 1;
          
        }
    }
    while (saque % 1 != 0);

if(nota50>0){
  if(nota50>1){
    printf("%d notas de R$ 50,00\n",nota50);
  }
  else
    printf("%d nota de R$ 50,00\n",nota50);
}

if(nota20>0){
  if(nota20>1){
    printf("%d notas de R$ 20,00\n",nota20);
  }
  else
    printf("%d nota de R$ 20,00\n",nota20);
}
if(nota10>0){
  if(nota10>1){
    printf("%d notas de R$ 10,00\n",nota10);
  }
  printf("%d nota de R$ 10,00\n",nota10);
}
if(nota5>0){
  if(nota5>1){
    printf("%d notas de R$ 5,00\n",nota5);
  }
  else
    printf("%d nota de R$ 5,00\n",nota5);
}
if(nota2>0){
  if(nota2>1){
    printf("%d notas de R$ 2,00\n",nota2);
  }
  else
    printf("%d nota de R$ 2,00\n",nota2);
}
if(nota1>0){
  if(nota1>1){
    printf("%d notas de R$ 1,00\n",nota1);
  }
  else
    printf("%d nota de R$ 1,00\n",nota1);
}
    return 0;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!