Ir ao conteúdo
  • Cadastre-se
Gabriel Almeida_439267

Dúvida sobre linguagem C (caixa eletrônico)

Recommended Posts

Boa noite pessoal, tenho um código em linguagem C, com funções basicas de um sistema de caixa eletrônico, porém o saldo sempre fica negativo, não consegui achar o erro , vocês poderiam dar uma olhada no código:

 

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

int main()  
{  
char saque=0,saldo=0,deposito=0,operacao,sair;  
do  
{  
 
printf("\n<a>Consultar Saldo\n<b>Deposito\n<c> Saque\n<d>Sair\n");  
scanf("%c",&operacao);  
system("PAUSE");  
 
switch(operacao)  
{  
case 'a':  
saldo=-saque+deposito;deposito;  
printf("Saldo......R$%d\n",saldo);  
system("PAUSE");  
break;  
 
case 'b':  
printf(" Digite o Valor a Ser Depositado:R$");  
scanf("%d",&deposito);  
saldo=(deposito)+(saldo);  
printf("Seu saldo é:R$ %d\n",saldo);  
system("PAUSE");  
break;  
 
case 'c':  
printf("Digite o Valor Solicitado:R$");  
scanf("%d",&saque);  
system("PAUSE");  
if (saque>saldo)  
{  
printf("Valor Solicitado R$%d é menor que o saldo disponivel que é R$%d\n",saque,saldo);  
saque=(0);  
system("PAUSE");  
}  
else if (saque<=saldo)  
{  
saldo=(deposito)-saque;  
printf("Seu novo Saldo é:R$%d",&saldo);  
}  
break;  
 
case 'd':     
printf("Obrigado por Utilizar nosso serviço ");  
getch();  
return(0);  
}  
}while(true);  
return 0;  
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa noite

 

recentemente dei inicio em linguagem c, meu professor passou um trabalho bem chato e nao ryou conseguindo faze-lo

 

Crie um código em  C que realize um controle de acionamento de uma lâmpada.  O
dado de entrada é de um sensor de presença. Mostre na saída um aviso de  comando de
saída:
Se sensor detectar presença, informar = Lâmpada Ativada
Se sensor não detectar presença, informar = Lâmpada Desativada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente como já lhe foi dito pelo colega acima!

 

E digo mais, char suporta operações com limite numérico de 28  = 256 se for unsigned.

Que no seu caso, o que acontece a fenômeno chamada -overflow do mais alto bit sempre que acontece o estouro

ele retomar 0, e começa novamente, e negativo.

 

A solução é usar um variável que supere 28 pode ser short que é 216 ou o int que é 232

Eu recomendo trocar;

char saque=0,saldo=0,deposito=0,operacao,sair;

por

int saque=0,saldo=0,deposito=0,operacao,sair;

São essa as minhas notas, 
esperamos ter ajudado,

Qualquer forma VALEU!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×