Acessando um valor dada sua posição numa matriz bidimensional

Publicado por Samuel Leonardo em 31/03/2016

[ Hits: 3.940 ]

Blog: https://tutorpro-sam.blogspot.com/

 


Acessando um valor dada sua posição numa matriz bidimensional



Essa dica é bem simples e útil para mostrar ao professor que você sabe mais que ele. hehehe

Vamos acessar um elemento numa posição numérica dentro de uma matriz bidimensional:

// acessar elemento numa matriz
#include <stdio.h>
int main(void)
{
  int i, j, c;
  int w = 10; // largura da matriz
  int h = 5; // altura da matriz
  // as posições vão de 0 até 5*10 - 1
  int matriz[5][10];

  c = w*h;
  for (i = 0; i < h; i++)
  {
    for (j = 0; j < w; j++)
    {
      // incia a matriz
      matriz[i][j] = --c;
      // vai iniciando e imprimindo a matriz
      printf("%2d,", matriz[i][j]);
    }
    printf("\n");
  }
  // posição para se pegar o valor
  int pos = 0;  
  printf("\nDigite uma posição de 0 à %d: ", w*h - 1);
  scanf("%d", &pos);
  
  i = pos / w; // pega a linha de 'pos'
  j = pos % w; // pega a coluna de 'pos'
  printf("matriz[%d][%d] = %d\n", i,j, matriz[i][j]);
  
  return 0;
}

O algoritmo é o seguinte:

Supondo ser X a posição, W a largura da matriz e H a altura da matriz, então para saber a posição da linha de X basta apenas dividir a posição X por W, ele será menor que H e maior ou igual a zero. Depois a posição da coluna basta pegar o resto da divisão de X por W, ele será a coluna de X e será menor que W e maior ou igual a zero.

Outras dicas deste autor

Programadores realizadores vs sonhadores - quando ação define os resultados que obtemos em software

Criando o hábito de ler sem gostar de ler

Comandao fácil: baixando blogs do Wordpress com o wget

Músicas para ouvir enquanto programa

Dica para encontrar diversos jogos Indies criativos

Leitura recomendada

Mais uma dica de curso de C e C++

Ocorrência de uma string em outra

stty: alternativa para echo e noecho

Melhor Controle de Memória de Strings em C

Incluindo paths para os seu próprios headers

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts