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

Publicado por Samuel Leonardo em 31/03/2016

[ Hits: 3.957 ]

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

Criando o hábito de ler sem gostar de ler

OpenSnitch - firewall para aplicações no seu GNU/Linux

Firejail - cadeia neles! Sandbox para aplicações no seu GNU/Linux

Como ler notícias com paywall

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

Leitura recomendada

Compilando no Code::Blocks

Como Converter uma String em Char Array em C++

Usando o friend em C++

Compilando e executando programas em C no Linux

Qt - Adicionando uma foto em Label (QLabel)

  

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