printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
while(conta != '0' && conta != '1' && conta != '2' && conta != '3') {
printf("Conta invalida! Tente novamente!\n");
printf("Digite sua conta:\n");
conta = getchar();
while(operacao == '0'){
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
}
while(operacao == '0'){
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
}
while(operacao == '0'){
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
}
printf("Operacao invalida! Tente novamente!\n");
printf("Escolha uma opcao:");}
}
return 0;
}
Ou seja, ainda estou criado o menu só com a opção de depósito, como se pode observar. Só existem 3 contas, a primeira sendo acessada pelo número 1, a segunda pelo número 2, e a terceira pelo número 3. Contudo, quando eu faco o teste, aparecem dois problemas:
1 - Sempre que eu insistir em digitar um numero inválido de conta, o programa supostamente deve ficar voltando a uma tela com um aviso que pede de novo o número da conta. Esse aviso aparece duplicado, sendo que no código ele só aparece uma vez! Quando eu uso if em vez de while, ele aparece só uma vez, sendo que eu preciso do laço pra que o programa SEMPRE emita esse aviso em caso de numero inválido, não apenas uma vez;
2 - Quando eu digitar um numero existente de conta, o programa deve entrar em outra tela com as opções de deposito ou sair, e que leia a minha opção desejada. Essa tela aparece, mas ele não lê a opção. Simplesmente finaliza! Não entendi o porquê.
Pergunta
guinrodrigues
Boa noite,
Estou tentando fazer um algoritmo que simule um menu de banco de forma simples. Ainda estou montando, a parte que eu fiz até agora é:
#include <stdio.h>
#include <stdlib.h>
int main(){
char conta, operacao;
float conta1, conta2, conta3, valor;
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
while(conta != '0' && conta != '1' && conta != '2' && conta != '3') {
printf("Conta invalida! Tente novamente!\n");
printf("Digite sua conta:\n");
conta = getchar();
}
if(conta == '1') {
printf("***********************************\n");
printf("OPERACOES\n");
printf("***********************************\n");
printf("(1)Deposito\n");
printf("(0)Para sair\n");
printf("***********************************\n");
printf("Escolha uma opcao:\n");
scanf("%c", &operacao);
while(operacao == '0'){
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
}
if(operacao == '1') {
printf("Valor depositado (R$):\n");
scanf("%f", &valor);
conta1 += valor;
printf("Deposito efetuado com sucesso!");
}
} else if(conta == '2') {
printf("***********************************\n");
printf("OPERACOES\n");
printf("***********************************\n");
printf("(1)Deposito\n");
printf("(0)Para sair\n");
printf("***********************************\n");
printf("Escolha uma opcao:\n");
operacao = getchar();
while(operacao == '0'){
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
}
if(operacao == '1') {
printf("Valor depositado (R$):\n");
scanf("%f", &valor);
conta2 += valor;
printf("Deposito efetuado com sucesso!");
}
} else if(conta == '3') {
printf("***********************************\n");
printf("OPERACOES\n");
printf("***********************************\n");
printf("(1)Deposito\n");
printf("(0)Para sair\n");
printf("***********************************\n");
printf("Escolha uma opcao:\n");
operacao = getchar();
while(operacao == '0'){
printf("***********************************\n");
printf("PORTAL DO SISBANCO\n");
printf("***********************************\n");
printf("Digite sua conta ou 0 para sair:\n");
conta = getchar();
}
if(operacao == '1') {
printf("Valor depositado (R$):\n");
scanf("%f", &valor);
conta3 += valor;
printf("Deposito efetuado com sucesso!");
}
while(operacao != '1' && operacao != '0'){
printf("Operacao invalida! Tente novamente!\n");
printf("Escolha uma opcao:");}
}
return 0;
}
Ou seja, ainda estou criado o menu só com a opção de depósito, como se pode observar. Só existem 3 contas, a primeira sendo acessada pelo número 1, a segunda pelo número 2, e a terceira pelo número 3. Contudo, quando eu faco o teste, aparecem dois problemas:
1 - Sempre que eu insistir em digitar um numero inválido de conta, o programa supostamente deve ficar voltando a uma tela com um aviso que pede de novo o número da conta. Esse aviso aparece duplicado, sendo que no código ele só aparece uma vez! Quando eu uso if em vez de while, ele aparece só uma vez, sendo que eu preciso do laço pra que o programa SEMPRE emita esse aviso em caso de numero inválido, não apenas uma vez;
2 - Quando eu digitar um numero existente de conta, o programa deve entrar em outra tela com as opções de deposito ou sair, e que leia a minha opção desejada. Essa tela aparece, mas ele não lê a opção. Simplesmente finaliza! Não entendi o porquê.
Agradeço pela ajuda! :)
Link para o comentário
Compartilhar em outros sites
0 respostass 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.