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

Publicado por Samuel Leonardo em 31/03/2016

[ Hits: 3.362 ]

 


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

Como escrever dicas e artigos para o VOL?

Eclipse - Crash ao exportar Android APK [Resolvido]

Tutorial básico de SEO com o Google (SEO starter guide)

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

movfuscator - Compilador de uma única instrução Assembly

Leitura recomendada

Curso de C em vídeo ambientado no Linux

Getchar(); sendo ignorado? Não mais!

Conversão vetor de caracteres para double

Instalando a biblioteca libxml2

Função recursiva para inverter um vetor de caracteres

  

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