Ir para conteúdo
Fórum Script Brasil
  • 0

Achar a posição de um valor na matriz


Henrike

Pergunta

Bom dia,

Estou resolvendo um exercicio que necessita achar se existe o valor dentro da matriz e qual a posição correspondente.

Até então consegui fazer com que ele ache se existe ou não o valor mas a posição não estou conseguindo se alguém souber por favor posta ai.

Obrigado.

codigo achando o valor:

char procura(int n)
{
    int lin, col;
    for(lin=0; lin<linha; lin++)
    {
        for(col=0; col<coluna; col++)
        {
            if(n==matriz[col][lin])
            {
                return 's';
            }
        }
    }
    return 'n';
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Se fosse um vetor você poderia fazer assim:

  • Se não for encontrado, retornar -1;
  • Se for encontrado, retorna a posição.
Como é uma matriz bidimensional, você pode retornar um valor que identifique unicamente a linha e coluna. Supondo que o tamanho da matriz seja (10,20) e o elemento tenha sido encontrado em [2,3], você pode retornar (2*20)+3=43, visto que uma posição da matriz principal representa 20 da secundária.

Para transformar esse valor novamente, você basta efetuar a divisão. Dessa forma:

int principal = 43 / 20 //2 - A parte decimal será descartada
int secundario = 43 % 20 //3 - O "%" é o operador de resto da divisão

Resumindo:

  • Se nada for encontrado, retorne -1;
  • Se algo for encontrado, retorne (lin*QTD_COLUNAS)+col
E para descobrir novamente as posições basta utilizar o código que postei acima.

Obs.:

Recomendo que mude a função para retornar um int, pois um char provavelmente não será suficiente para armazenar todas as possíveis posições da matriz.

Poste aí se conseguiu resolver.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...