Ir ao conteúdo
  • Cadastre-se

C Simular funções bancárias básicas


Visitante
Ir à solução Resolvido por Lucca Rodrigues,

Posts recomendados

Programa que simula funções bancárias (depositar, sacar e ver saldo), e tem que ter uma variável global estática dinheiro iniciada com valor 1000; porém, meu programa não reconhece o valor dela em nenhuma das funções.

 

O que fiz até agora:

 

#include<stdio.h>
#include<string.h>

void depositar(int valorDep){ //recebe um valor e soma ao dinheiro
    int dinheiro = 1000;
    printf ("Digite a quantia a ser depositada: R$ ");
    scanf("%d", &valorDep);
    dinheiro += valorDep;
}
void sacar(int valorSaq){ //recebe um valor e subrai ao dinheiro
    int dinheiro = 1000;
    printf ("Digite a quantia a ser sacada: R$ ");
    scanf("%d", &valorSaq);
    dinheiro -= valorSaq;
}
void saldo(){ //mostra o total depois das operações feitas pelo usuário
    int dinheiro;
    printf("Saldo: %d", dinheiro);
}
void sair(){ //sai do programa após o usuário selecioná-la
    printf("Até mais!\n");
}

int main(){
    int deposito, saque, opcao = 1;
    
    do{
        printf("\n\nBANCO\n\n");
        printf("1. Deposito\n");
        printf("2. Saque\n");
        printf("3. Saldo\n");
        printf("0. Sair\n");

        scanf("%d", &opcao);

        switch(opcao){
            case 1:
                depositar(deposito);
                break;

            case 2:
                sacar(saque);
                break;

            case 3:
                saldo();
                break;

            case 0:
                sair();
                break;

            default:
                printf("Digite uma opção válida\n");
        }
    } while(opcao);
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • Solução

@Elize Yakamura

11 minutos atrás, Elize Yakamura disse:

variável global estática dinheiro iniciada com valor 1000

A variável tem que ser declarada no escopo global, variáveis globais são criadas a partir da colocação das declarações de variável fora de qualquer definição de função, isso difere do que fez:

27 minutos atrás, Elize Yakamura disse:
void depositar(int valorDep){ //recebe um valor e soma ao dinheiro
    int dinheiro = 1000;
    printf ("Digite a quantia a ser depositada: R$ ");
    scanf("%d", &valorDep);
    dinheiro += valorDep;
}
void sacar(int valorSaq){ //recebe um valor e subrai ao dinheiro
    int dinheiro = 1000;
    printf ("Digite a quantia a ser sacada: R$ ");
    scanf("%d", &valorSaq);
    dinheiro -= valorSaq;
}
void saldo(){ //mostra o total depois das operações feitas pelo usuário
    int dinheiro;
    printf("Saldo: %d", dinheiro);
}

Ela deve ser declarada com o especificador de classe de armazenamento static e deve ser inicializada com valor 1000.

Quando static é aplicado a uma variável global ou a uma função, evita que ela seja usada por qualquer função que não tenha sido definida no mesmo arquivo.

 

Bem, convenhamos que uma função que tem como propósito chamar outra função é um desperdício...

42 minutos atrás, Elize Yakamura disse:
void saldo(){ //mostra o total depois das operações feitas pelo usuário
    int dinheiro;
    printf("Saldo: %d", dinheiro);
}
void sair(){ //sai do programa após o usuário selecioná-la
    printf("Até mais!\n");
}

Você poderia só chamar a printf() na main() mesmo.

Veja:

#include<stdio.h>

static int dinheiro = 1000;

void depositar(int valorDep)
{
    printf ("Digite a quantia a ser depositada: ");
    scanf("%d%*c", &valorDep);
    dinheiro += valorDep;
}
void sacar(int valorSaq)
{
    printf ("Digite a quantia a ser sacada: ");
    scanf("%d%*c", &valorSaq);
    dinheiro -= valorSaq;
}

int main()
{
    int deposito, saque, opcao = 1;
    
    do{
        puts("---BANCO---");
        puts("1. Deposito");
        puts("2. Saque");
        puts("3. Saldo");
        puts("0. Sair");

        scanf("%d%*c", &opcao);

        switch(opcao)
        {
            case 1:
                depositar(deposito);
            break;

            case 2:
                sacar(saque);
            break;

            case 3:
                printf("Saldo: %d\n", dinheiro);
            break;

            case 0:
                printf("Até mais!\n");
            break;

            default:
                printf("Digite uma opção válida\n");
        }
    } while(opcao);
    
    return 0;
}
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!