Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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;  
}
 

Link para o comentário
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

Link para o comentário
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!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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