Ir ao conteúdo
  • Cadastre-se
Lucas Tezolini Herler

C++ Encontrar determinado elemento em matriz

Recommended Posts

Estou com dúvida nessa questão de C++, galera, ele simplesmente não ta indicando o valor, quando ele existe na matriz. Sempre está acusando ''não encontrado!" e não sei o porquê. Alguém poderia me ajudar ? Agradeço desde já !7. Leia uma matriz 5 x 5, leia também um valor X. O programa deverá fazer uma
busca desse valor na matriz e, ao final escrever a localização (linha e coluna) ou
uma mensagem de “não encontrado” 

#include<stdio.h>
#include<locale.h>
#define t 2
int main ()
{
    setlocale(LC_ALL,"Portuguese_Brazil");
    int m[t][t], i, j, x, lin, col, achou;
    preencher(m);
    indicar(x);
    busca(m);
}
int preencher(int m[t][t])
{
    int i, j;
    for (i=0;i<t;i++)
    {
        for (j=0;j<t;j++)
        {
            printf("Digite o valor de posição %d%d: ", i, j);
            scanf("%d",&m[j]);
        }
    }
}
int indicar (int x)
{
    printf("Digite o valor a ser procurado: \n");
    scanf("%d", &x);
}

int busca (int m[t][t])
{
    int i, j, lin, col, x, achou = 0;
    for (i=0;i<t;i++)
    {
        for (j=0;j<t;j++)
        {
            if (m[j] == x)
            {
                lin = i;
                col = j;
                achou = 1;
            }
        }
    }
    if (achou == 1)
    {
        printf("O valor encontrado é %d na posição %d %d \n", x, lin, col);
    }
    else
    {
        printf("Valor não encontrado !");
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu programa está em C, não em C++.

 

O problema é que a sua variável não está recebendo o valor. (E a função main deveria estar no fim do código.)

 

Por exemplo, você obtém o valor de x na função indica(), mas essa função não retorna nenhum valor, então esse valor de x é obtido mas não é usado pra nada, simplesmente é descartado quando a função acaba de executar.

 

E a função busca() também não recebe nenhum valor de x, e também cria outro x dentro dela, só que este x nunca recebe valor algum, então você está buscando na matriz algum número aleatório que está no espaço da memória reservado para a variável x.

 

(E as funções preencher e busca não retornam nada logo deveriam ser do tipo void.)

 

 

Veja, o protótipo da função busca deveria ser assim:

void busca (int m[t][t], int x)

Assim você precisaria passar para a função tanto a matriz quando o valor de x.

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

×