Programa em C

1 resposta
programação
R
Olá!

Preciso fazer esse programa de um banco, onde o usuario informa numero de conta e senha que são formados por sequências numéricas de 5

dígitos inteiros e devem ser solicitados ao usuário e armazenados

adequadamente em vetores ou matriz;

O usuário terá 3 tentativas para informar corretamente número de conta

e/ou senha de acesso. Após cada tentativa incorreta o programa deve

apresentar na tela: Dados de acesso incorretos. Restam XY tentativas!.

Após a terceira tentativa incorreta, o programa deverá notificar o usuário

com a mensagem Acesso negado e encerrar imediatamente, pode ser utilizada a função

exit(0);

Eu não estou conseguindo comparar as strings, nem com os dados da conta. Se alguém puder, ajudar, eu agradeço muito!

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

int main()

{

char conta [5]={1,2,3,4,5};

char senha [5]={1,2,3,4,5};

char senha_c[5];

char conta_c[5];

int flag=0;

int coluna,tentativas;
do{
    printf("Digite o numero da sua conta: ");
    for(coluna=0;coluna<=4;coluna++)
    {
        conta_c[coluna]=(int)getche();
    }
    printf("\n");

    printf("Digite a senha: ");

    for(coluna=0;coluna<=4;coluna++)
    {
        senha_c[coluna]=(int)getche();
        break;
    }
    tentativas++;

    }while(tentativas<3);
        if(tentativas==3)
        {
            printf("LOGADO");
            flag=0;
        }

    return(0);
    }

1 Resposta

I

1 - O exercício pede inteiros e não strings.
2 - Não entendi porque fez uso de uma flag (não usou ela em lugar nenhum).

Eu fiz um exemplo, mas não está totalmente funcional (não recupera o valores em um vetor ou matriz) para não te dar o exercício pronto. Logo, te servirá apenas como um norte:

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

int main(){
    const int TAMANHO = 5;
    int i, j, senha, conta, indice_conta, tentativa, corresponde;
    int contas[] = {12569, 21602, 14019, 37801, 11175};
    int senhas[] = {25891, 12714, 12967, 41050, 39181};

    for(i = 0; i < TAMANHO; i++){
        indice_conta = 0;
        tentativa = 3;
        corresponde = 0;

        printf("\n\tInforme o número da conta bancária: ");
        scanf("%d", &conta);

        for(j = 0; j < TAMANHO; j++){
            if(conta == contas[j]){
                indice_conta = j;
                break;
            }
            if(j == TAMANHO - 1){
                printf("\n\tConta inexistente!\n");
                exit(0);
            }
        }

        do{
            printf("\n\tInforme a senha: ");
            scanf("%d", &senha);

            if(senha == senhas[indice_conta]){
                corresponde = 1;
                printf("\n\tBem-vindo cliente!\n");
                break;

            }else{
                --tentativa;
                if(tentativa > 0)
                    printf("\n\tDados incorretos. Restam %d de 3 tentativas\n", tentativa);
                else
                    printf("\n\tAcesso negado!\n");
            }

        }while(tentativa > 0 && corresponde != 1);
    }

    system("pause");
    return 0;
}

Rodando…

image

Criado 2 de dezembro de 2019
Ultima resposta 2 de dez. de 2019
Respostas 1
Participantes 2