Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com programa de caixa eletrônico


Sergio Henrique

Pergunta

Olá, estou com um pequeno problema no meu programa de simular um caixa eletrônico.
O que foi pedido pelo professor foi o seguinte.

"O usuário deverá, inicialmente, inserir o valor das duas cédulas que deseja obter. Exemplo: R$ 10,00 e R$ 20,00. Essa opção é limitada aos valores existentes das cédulas da moeda Nacional. Em seguida, deverá digitar o valor que deseja sacar, limitado a R$ 1000,00. O suposto caixa eletrônico deverá apresentar como resultado as quantidades de cada cédula para obter o valor desejado. Caso tenha mais de uma combinação de cédulas para o mesmo valor, o programa deverá apresentar como resposta aquela que tenha menor quantidade de cédulas. Exemplo: se eu quiser sacar R$170,00, tenho pelos menos duas opções com cédulas de R$50,00 e R$20,00, 3 cédulas de R$50,00 e uma de R$20,00, totalizando 4 cédulas. A outra opção seria uma cédula de R$50,00 e 6 cédulas de R$20,00, totalizando 7 cédulas. Neste caso, de acordo com o critério a resposta correta seria a primeira."

Eu criei, porém estou com um problema.

No caso se eu digito pra sacar 8 reais por exemplo, o programa me mostra que vou receber uma de 5 e uma de 2 reais, sendo que isso da no total 7, gostaria de saber como implemento pra que quando der resultados incompativeis com as notas, ele retorne que não foi possivel. To sem noção alguma do que fazer, e já tentei o que pude.

Se for possivel me ajudar, agradeço muito.

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

int main() {
	
	int opcao;
    int saque;
    int resto100,resto50,resto20,resto10,resto5,resto2;
    int nota100,nota50,nota20,nota10,nota5,nota2;
	
		 printf("Escolha 1 = Notas de 2 e 5: \n");
		 printf("Escolha 2 = Notas de 5 e 10: \n");
		 printf("Escolha 3 = Notas de 10 e 20: \n");
		 printf("Escolha 4 = Notas de 20 e 50:  \n");
		 printf("Escolha 5 = Notas de 50 e 100:  \n");
		 printf("Digite a sua preferência de notas que deseja receber: \n");
        scanf("%d",&opcao);
        
        switch (opcao){
        	case 1 :
        		
        		do {
        printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 1 == 0 && saque <= 1000 ) {
        	nota5 = saque / 5;
            resto5 = saque % 5;            
            nota2 = resto5 / 2;
            resto2 = resto5 % 2;
			}
        else
            printf("voce digitou um valor de saque nao permitido. Tente novamente.\n");
    }
    while (saque % 1 != 0 || saque > 1000);	
    	printf("%d notas 5\n",nota5);
		printf("%d notas 2\n",nota2);
	
        		
        		break;
        	
        	
        	case 2 :
        		
        		do {
        printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 5 == 0 && saque <= 1000 ) {
        	nota10 = saque / 10;
            resto10 = saque % 10;            
            nota5 = resto10 / 5;
            resto5 = resto10 % 5;
			}
        else
            printf("voce digitou um valor de saque nao permitido. Tente novamente.\n");
    }
    while (saque % 5 != 0 || saque > 1000);	
    	printf("%d notas 10\n",nota10);
		printf("%d notas 5\n",nota5);
	
        		
        		break;
        		
        			case 3 :
        		
        		do {
        printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 10 == 0 && saque <= 1000 ) {
        	nota20 = saque / 20;
            resto20 = saque % 20;            
            nota10 = resto20 / 10;
            resto10 = resto20 % 10;
			}
        else
            printf("voce digitou um valor de saque nao permitido. Tente novamente.\n");
    }
    while (saque % 10 != 0 || saque > 1000)
	;	
    	printf("%d notas 20\n",nota20);
		printf("%d notas 10\n",nota10);
	
        		
        		break;
        		
        		case 4 :
        		
        		do {
        printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 10 == 0 && saque <= 1000 ) {
        	nota50 = saque / 50;
            resto50 = saque % 50;            
            nota20 = resto50 / 20;
            resto20 = resto50 % 20;
			}
        else
            printf("voce digitou um valor de saque nao permitido. Tente novamente.\n");
    }
    while (saque % 10 != 0 || saque > 1000)
	;	
    	printf("%d notas 50\n",nota50);
		printf("%d notas 20\n",nota20);
	
        		
        		break;
        		
        			case 5 :
        		
        		do {
        printf("Digite o valor a ser sacado: ");
        scanf("%d",&saque);
        if (saque % 10 == 0 && saque <= 1000 ) {
        	nota100 = saque / 100;
            resto100 = saque % 100;            
            nota50 = resto100 / 50;
            resto50 = resto100 % 50;
			}
        else
            printf("voce digitou um valor de saque nao permitido. Tente novamente.\n");
    }
    while (saque % 10 != 0 || saque > 1000)
	;	
    	printf("%d notas 100\n",nota100);
		printf("%d notas 50\n",nota50);
	
        		
        		break;
        		
        		default : printf("voce digitou um valor de notas nao permitido. Tente novamente.\n");
        		
        	}
        
        
	 return 0;
}
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...