Ir ao conteúdo

Posts recomendados

Postado

@arfneto estava tentando aqui... 

#include <stdio.h>
int main(void){

int opcao = 0;
int cont;

int contacorrente[10000] = {0};
int n_operacoes = {0};
float saldo[1000] = {0.00};

float valordeposito = 0.00;
float valorsaque = 0.00;

  printf("\n=================================\n");
  printf("======= CAIXA eletrônico ========\n");
  printf("=================================\n");

for(cont=0; cont<=9999; cont++){

while(opcao != 4){
printf("\n\n\t  1 - Saldo\n\n\t  2 - Saque\n\n\t  3 - Deposito\n\n\t  4 - Sair\n");
printf("-> ");
scanf("%i",&opcao);
switch(opcao){
case 1:
        printf("Seu saldo : %.2f\n", saldo[cont]);
        n_operacoes++;
        continue;
case 2:
        if(saldo == 0){
        printf("Seu saldo esta zerado, voce nao tem o que sacar!\n");
        continue;
        }
        printf("Digite o valor a ser sacado : ");
        scanf("%f", valorsaque);
        if(valorsaque < saldo[cont]){
                printf("voce nao tem dinheiro suficiente para efetuar este saque!\n");
                continue;
        }
        saldo[cont]=saldo[cont]-valorsaque;
        valorsaque=0.00;
        n_operacoes++;
        continue;
case 3:
        printf("Digite o valor a ser depositado : ");
        scanf("%f",&valordeposito);
        if(valordeposito < 0){
                printf("voce nao pode depositar um valor negativo!\n");
                continue;
        }
        saldo[cont]=saldo[cont]+valordeposito;
        valordeposito=0.00;
        n_operacoes++;
        continue;
case 4:
        contacorrente[cont]=cont;
        break;
default:
        printf("Opcao invalida!\n");
        continue;
}
}
}

for(cont=0; cont<=9999; cont++){
    printf("Conta corrente id : %i\nSaldo : %.2f\nNumero de operacoes total : %i\n\n",contacorrente[cont],
    saldo[cont],n_operacoes);
}

return 0;
}

 

Assim?

Postado

Parece que não mudou quase nada. Continua com o case sem break com os cases terminando em continue para o loop de fora. A mesma construção de antes

 

e uma operação, 1.000 saldos e 10.000 contas?

adicionado 0 minutos depois

E continua tudo baseado no teclado e na tela...

Postado
1 hora atrás, Mauro Britivaldo disse:


ACtC-3ePJV1i-cMEt1DKALDk7kYOmZnmclwxRY9U

Saldo, Saque e Deposito

~//~

 

As operações em seu caixa eletrônico são S/S/D ?

e sair... mas quando eu colocar a op 4(sair) ele deve armazenar as informações em um vetor para apresenta-las depois, enquanto eu insiro outras informações.

adicionado 0 minutos depois
1 hora atrás, arfneto disse:

E continua tudo baseado no teclado e na tela...

como assim??

 

adicionado 1 minuto depois
1 hora atrás, arfneto disse:

Parece que não mudou quase nada. Continua com o case sem break com os cases terminando em continue para o loop de fora. A mesma construção de antes

então eu tiro os "continue" e coloco break?

 

adicionado 6 minutos depois
1 hora atrás, arfneto disse:

e uma operação, 1.000 saldos e 10.000 contas?

assim, são 10.000 usuarios... o saldo é 0,00, mas ele pode mudar quando eu digitar 3 e dizer o saldo que eu quero depositar "nessa conta do usuario", logo após se eu selecionar 2(sacar) da erro e o programa para de rodar,

ja quando eu seleciono 4(sair/ir para o próximo usuario ou nesse caso conta bancária), ele roda o programa todo como se fosse um loop em onde ele só joga informações que nem foram postas pelo usuario.

Postado
57 minutos atrás, wars897 disse:

assim, são 10.000 usuarios... o saldo é 0,00, mas ele pode mudar quando eu digitar 3 e dizer o saldo que eu quero depositar "nessa conta do usuario", logo após se eu selecionar 2(sacar) da erro e o programa para de rodar,

ja quando eu seleciono 4(sair/ir para o próximo usuario ou nesse caso conta bancária), ele roda o programa todo como se fosse um loop em onde ele só joga informações que nem foram postas pelo usuario

 

As operações e contas e o saldo devem ser mantidos por cliente. TUDO. Então se tem 30 clientes tem 30 saldos e 30 contadores de operações, que é uma coisa besta mas assim é.

 

vou ver o que tem no programa logo mais

adicionado 11 minutos depois
  • o scanf() para ler um float precisa de um endereço de um float então deve usar &valor_saque e não apenas valor_saque
  • já sabe que a opção de saída deve sair simplesmente do loop mas mostrar as operações que foram feitas, cero?
  • Se não perguntou a conta do cara em nenhum momento como acha que vai tratar 10.000 contas? E listar as operações?
  • Qual o propósito ao ver a tal opção 4 sair ficar mostrando sei lá o que até dar as 10.000 operações? Sério?
  • Continua usando aquelas construções exóticas de case sem break com continue. Eu te avisei que era problema e na opção 4 já deu m#$d%
  • Depois da opção 4 já pensou em terminar o trem e listar as operações que foram feitas?
  • Curtir 1
Postado

HaWI7GWwZfb86BMdceCPVOGz2nboFbMnppggNNea

O "loop de Contas" não acrescenta nada e prejudica um pouco na averiguação do algoritmo.

 

 

ACtC-3facxOQpiUaUFkYmJ-fWDmiWv8hxt8pTM3G

6 horas atrás, wars897 disse:

if (valordeposito < 0) 

printf("voce nao pode depositar um valor negativo!\n");

Não há possibilidade porque seu caixa eletrônico não tem o sinal (-) no teclado.

  • Curtir 1
Postado

Obrigado

adicionado 9 minutos depois
6 horas atrás, arfneto disse:
  • Se não perguntou a conta do cara em nenhum momento como acha que vai tratar 10.000 contas? E listar as operações?
  •  

devo então criar um vetor que armazene uma numero aleatorio digitado pelo usuario antes dele selecionar a opção que ele quer? tipo printf("Digite abaixo o numero da sua conta corrente?"); e só depois que ele inserir o número da conta mostrar as ops disponiveis??

adicionado 12 minutos depois
6 horas atrás, arfneto disse:

Depois da opção 4 já pensou em terminar o trem e listar as operações que foram feitas?

como assim?

 

adicionado 13 minutos depois
6 horas atrás, arfneto disse:

Qual o propósito ao ver a tal opção 4 sair ficar mostrando sei lá o que até dar as 10.000 operações? Sério?

foi pedido pelo professor... tipo só troca de conta do usuario quando o próprio digita a op 4

adicionado 18 minutos depois
6 horas atrás, arfneto disse:

Continua usando aquelas construções exóticas de case sem break com continue. Eu te avisei que era problema e na opção 4 já deu m#$d%

eu troquei os "continue" pelo "break" como você disse, mas agora a op 2 ta dando erro de impressão, eu deposito(op 3) 3000, logo após op 2 e o programa diz: "você não tem dinheiro suficiente para efetuar este saque"

adicionado 19 minutos depois

e assim como você disse também, eu alterei isso:

 

 

 

6 horas atrás, arfneto disse:

o scanf() para ler um float precisa de um endereço de um float então deve usar &valor_saque e não apenas valor_saque

 

Postado
15 minutos atrás, wars897 disse:

como assim?

 

Testou de fato seu programa? Sabe que ao usar a opção sair ele fica no loop ate 9999 mostrando nada na tela, imagino. Acha que ficou bom? Que está certo?

 

image.thumb.png.12c078bed29eea1c83a4f9f0042df712.png

 

Ao entrar no programa e digitar 4 sair ele fica um tempo imprimindo isso. Não contei mas acho que são 9999 vezes. 

 

Não, não está assim bom.
 

19 minutos atrás, wars897 disse:

foi pedido pelo professor... tipo só troca de conta do usuario quando o próprio digita a op 4

 

Bem, se foi quer dizer que tem dois SAIR. um pra sair da conta e outro para SAIR do programa. Ou será que vai ler 9999 contas toda vez? 

 

Se você tem que fixar as operações por conta só é mais chato mas é mais fácil. Você precisar ler o número da conta do cara e arrumar uma posição no vetor para ela. Ou nos 3 vetores como te falei. E aí você fica no menu fazendo as tais operações. E atualiza o saldo e deixa na tela junto com a conta. É melhor pra você controlar os testes. Ao sair da conta você pergunta se vai ler outra ou não...

 

E ao encerrar manda o relatório com as movimentações...

 

19 minutos atrás, wars897 disse:

devo então criar um vetor que armazene uma numero aleatorio digitado pelo usuario antes dele selecionar a opção que ele quer? tipo printf("Digite abaixo o numero da sua conta corrente?"); e só depois que ele inserir o número da conta mostrar as ops disponiveis??

 

Não.

 

Entenda o que você tem que fazer antes de tentar fazer.

  • você tem até 10.000 clientes e isso é só para o cara testar o conhecimento com os tais vetores.
  • eu te disse duas maneiras de fazer e te disse umas coisas que estavam erradas no que estava fazendo. Você não usou nenhuma das duas e nem corrigiu o que estava errado então é razoável que ainda tenha problemas
  • ao final, quando o cara teclar sair, você tem que mostrar um relatório de fechamento, mostrando PARA  CADA CONTA MOVIMENTADA o saldo final e a quantidade de operações. E usando uma estrutura de repetição para mostrar isso. Esqueça essa parte porque se não usar uma estrutura de repetição vai fazer usar o que? uma furadeira de impacto e listar cliente[0] cliente[1] cliente[2] ate cliente[9999] ?
  • se você em lugar nenhum trata a conta corrente como vai conseguir listar os saldos de até 10.000 contas? sorteio?

 

Você tem que ler o número da conta e a partir daí criar uma movimentação para essa conta no vetor, e atualizar o saldo e o contador de operações. Só isso. Não precisa por em ordem de conta, nada disso, pode ir colocando no vetor o numero da conta e o saldo que começa com zero e a movimentação. Só isso. Ao receber uma movimentação para uma conta você vai lá no vetor de 10000 e vê se a conta já está lá. se já está você faz a operação e atualiza os saldos. Se não está você coloca e marca  a primeira operação. É muito simples na verdade, se não começar a enfeitar.

 

É algo assim

 

conta 1 deposito 100 
conta 2 deposito 500
conta 1 deposito 300
conta 1 saque 150

-- fim -- 

movimentos

conta 1: 3 operacoes saldo 250
conta 2: 1 operacoes saldo 500

 

A entrada desse programa devia ser um arquivo de movimentações e não um menu na tela. Como vai conferir o resultado se não tem os valores digitados? Bobagem.

 

Se você entrasse com um simples arquivo como acima e mostrasse na tela o resumo da movimentação faria mais sentido.

 

Acha que entendeu agora porque precisa do número da conta para tratar até 10.000 contas?

 

Seu programa está muito longe de funcionar. E mude aquelas coisas de que te falei.

Postado
1 minuto atrás, arfneto disse:

Testou de fato seu programa? Sabe que ao usar a opção sair ele fica no loop ate 9999 mostrando nada na tela, imagino. Acha que ficou bom? Que está certo?

sim, é disso que eu estou falando...

adicionado 1 minuto depois
2 minutos atrás, arfneto disse:

Bem, se foi quer dizer que tem dois SAIR. um pra sair da conta e outro para SAIR do programa. Ou será que vai ler 9999 contas toda vez? 

acredito que 9999 ele vai trocar de conta de usuario, mas na 10000 el vai fachar o programa

adicionado 7 minutos depois
9 minutos atrás, arfneto disse:

Acha que entendeu agora porque precisa do número da conta para tratar até 10.000 contas?

sim

adicionado 8 minutos depois
9 minutos atrás, arfneto disse:

Seu programa está muito longe de funcionar. E mude aquelas coisas de que te falei.

ok, vou mudar

 

Postado
22 minutos atrás, wars897 disse:

acredito que 9999 ele vai trocar de conta de usuario, mas na 10000 el vai fachar o programa

 

Você não está falando sério está?

 

Acha mesmo que vai ficar parado esperando até dar 9999 transações para cada conta , com o programa escrevendo aquela bobagem na tela, para depois voltar ao menu e continuar? Eu pediria uma assinatura do professor no enunciado antes de programar isso

Postado
1 minuto atrás, arfneto disse:

 

Você não está falando sério está?

 

Acha mesmo que vai ficar parado esperando até dar 9999 transações para cada conta , com o programa escrevendo aquela bobagem na tela, para depois voltar ao menu e continuar? Eu pediria uma assinatura do professor no enunciado antes de programar isso

olha ksksksksk o meu professor pensa um pouco fora da caixa; mas é esse o enunciado

adicionado 1 minuto depois

aps1.PNG.43be1bace32f2c40eeee44fd5e277a18.PNG

 

 

 

Alí na expecificação 5 é que está dizendo sobre essa questão...

Postado

image.png.3e0f3d78dfd89fcdfddbccfdf2e044c9.png

 

Entendeu esse exemplo?

 

2 minutos atrás, wars897 disse:

olha ksksksksk o meu professor pensa um pouco fora da caixa; mas é esse o enunciado

 

Faça o simples. Não está escrito no enunciado. Não dá pra imaginar o programa mostrar 30.000 linhas com a mesma mensagem na tela, e sem sentido, a cada vez que for alterar a conta corrente.

 

Tem mesmo que ter um menu?

 

Tem um enunciado que fala isso? Poderia  postar o enunciado dizendo que vai imprimir sem parar a toa? vou por numa moldura

Postado

no caso o "até chegar o fim da execução" é até chegar o usuario 10000...

 

adicionado 0 minutos depois
1 minuto atrás, arfneto disse:

Entendeu esse exemplo?

 

sim sim

adicionado 1 minuto depois
2 minutos atrás, arfneto disse:

Tem mesmo que ter um menu?

sim... ele bate nessa tecla de ter menu🤦‍♂️

Postado
agora, wars897 disse:

no caso o "até chegar o fim da execução" é até chegar o usuario 10000

 

Seu professor vai se sentar e testar isso, com muita paciência. esperando as mais de 30.000 linhas com a mesma mensagem na tela, e depois de novo para uma outra conta? Ou ele vai pagar alguém?

 

E você vai esperar pra testar?

 

No enunciado diz que tem que ter menu? Tem mesmo? Ou basta ter vetores?

Postado
3 minutos atrás, arfneto disse:

Tem um enunciado que fala isso? Poderia  postar o enunciado dizendo que vai imprimir sem parar a toa? vou por numa moldura

 ksksksksk  é esse aqui mesmo

 

aps1.PNG

  • Curtir 1
Postado
1 minuto atrás, arfneto disse:

Seu professor vai se sentar e testar isso, com muita paciência. esperando as mais de 30.000 linhas com a mesma mensagem na tela, e depois de novo para uma outra conta? Ou ele vai pagar alguém?

 

 

assim... como temos que mandar o código em .zip ele abre o código no programa dele.. mas p´ra testar essas coisas absurdas que ele pede para nó el deve alterar o código pra fazer só 5 operações, nesse caso para ter só 5 contas de usuario

adicionado 1 minuto depois
1 minuto atrás, arfneto disse:

aquela bobagem. esqueça

ok

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!