Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include<stdio.h> #include<stdlib.h> typedef enum {false, true} bool; typedef struct no { int valor; struct no *prox; } noCedula; noCedula *pilha[7]; int valorCedula [7] = {1,2,5,10,20,50,100}; void inicializaPilha() { int i; for (i=0; i<7; i++) { pilha[i] = NULL; } } void abastecePilha (int quant, int v) { int i ; int pos; noCedula *novo; switch (v) { case 1 : pos = 0; break; case 2 : pos = 1; break; case 5 : pos = 2; break; case 10 : pos = 3; break; case 20 : pos = 4; break; case 50 : pos = 5; break; case 100 : pos = 6; break; default : printf("\n>>Valor da Cedula invalido!\n\n"); } for (i=0; i<quant; i++) { novo = (noCedula*)(malloc(sizeof (noCedula))); novo -> prox = pilha[pos]; pilha[pos] = novo; } } void imprimeSaldo() { noCedula *atual; int i; int soma = 0; for(i=0; i<7; i++) { atual = pilha[i]; while(atual!=NULL) { soma = soma + atual -> valor; atual = atual -> prox; } } printf("-> Saldo = %d \n", soma ); } void imprimeSomaCedulas() { noCedula *atual; int i; int soma = 0; for(i=0; i<7; i++) { atual = pilha[i]; soma = 0; while(atual!=NULL) { soma = soma + atual ->valor; atual = atual -> prox; } printf("\n-> Saldo em notas de %d = %d \n",valorCedula[i], soma); } printf("\n"); } bool saqueDisponivel(int valor) { int i; noCedula *atual; for(i=7; i>=0; i--) { atual = pilha [i]; while ((atual!=NULL)&&(valor/valorCedula[i]>=1)) { valor = valor - atual -> valor; atual = atual -> prox; } } if (valor ==0) { return true; } else { return false; } } bool saque (int valor) { int i; noCedula *atual; if(saqueDisponivel(valor == true)) { for(i=6; i>=0; i--) { while((pilha[i]!= NULL)&&(valor /valorCedula[i])>=1) { valor = valor - pilha[i] -> valor; atual = pilha[i]; pilha[i]= atual -> prox; free(atual); } } return true; } else { return false; } } int main () { int op, quant, valor, valor2; bool sacar; abastecePilha(80, 100); abastecePilha(70, 50); abastecePilha(150, 20); abastecePilha(200, 10); abastecePilha(30, 5); abastecePilha(55, 2); abastecePilha(100, 1); inicializaPilha(); while(op!=5) { printf("BANCO\n\n"); printf("1- Abastecer \n"); printf("\n2- Sacar \n"); printf("\n3- Imprimir saldo \n"); printf("\n4- Imprimir soma de cedulas \n"); printf("\n5- Sair \n"); scanf("%d", &op); switch(op) { case 1: printf("Entre com a quantidade de cedulas: "); scanf("%d",&quant); printf("\n"); printf("Entre com o valor: "); scanf("%d",&valor); printf("\n"); abastecePilha(quant, valor); break; case 2: printf("Entre com o valor: "); scanf("%d",&valor2); printf("\n"); sacar = saque(valor2); if(sacar) { printf("SUCESSO \n"); } else { printf("ERRO \n"); } break; case 3: imprimeSaldo(); break; case 4: imprimeSomaCedulas(); break; } system("pause"); system("cls"); } return 0; }
Compartilhar