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

Publicado por Samuel Leonardo em 31/03/2016

[ Hits: 3.488 ]

Blog: https://nerdki.blogspot.com.br/

 


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

Removendo barra de título ao maximizar programas no Ubuntu

Tampermonkey - Executando JavaScript em Sites com o Chrome

Imprimir na mesma linha em C

Tux Games: jogos para seus filhos pequenos

Curso de introdução ao estudo de compiladores

Leitura recomendada

Curso de C online

Qt 4.5 (Desenvolvimento multi-plataforma em C++ com Qt)

Pressionar tecla e não precisar pressionar ENTER

Usando comandos do sistema em C

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