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

Publicado por Samuel Leonardo em 31/03/2016

[ Hits: 3.211 ]

Blog: https://nerdki.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

Gravando áudio a partir da linha de comando

Tampermonkey - Executando JavaScript em Sites com o Chrome

Cross Compiling - compilando seus programas C/C++ para Windows usando seu Linux

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

Removendo barra de título ao maximizar programas no Ubuntu

Leitura recomendada

Como limpar a tela em C

Recursão em C

Fatorial usando recursividade

Função recursiva para inverter um vetor de caracteres

Encontrando erros em seus programas

  

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