Ir para conteúdo
Fórum Script Brasil
  • 0

Matrizes bidimensionais


Gretney

Pergunta

Boa noite, queria saber como faço pra analisar um área ao redor de um numero em uma matriz bidimensional, vou simplificar

X X 1

X 1 X        

X X X         

Eu vou dá a posição do numero '1' na linha 2, coluna 2, e quero analisar ao redor dele pra encontrar o outro 1 e caso, houvesse outras linhas/colunas, fosse encontrando os outros uns se houvesse? eu to bugado, não consigo pensar em algo

Editado por Gretney
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Fazes um for loop a percorrer os valores de x e y (entre -1 e 1). 

Adicionas o x e o y á posição do teu "centro" que queres analisar á roda.

Depois fazes "continue;" quando, ao "analisares" no loop, a posição for a do proprio centro ou se exceder os limites do array.

...

#define ARRAY_X 3
#define ARRAY_Y 3

struct Vector
{
  Vector(int _x, int _y) : x(_x), y(_y){}
  int x;
  int y;
}

//...

int array[ARRAY_X][ARRAY_Y];
Vector numero(1, 1);

for(int y = -1; y != 2; y++)
{
  if(numero.y + y < 0 || numero.y + y >= ARRAY_Y) continue;
  
  for(int x = -1; x != 2; x++)
  {
      if(numero.x + x < 0 || numero.x + x >= ARRAY_X) continue;
      if(x == 0 && y == 0) continue;
    
      if(array[numero.x + x][numero.y + y] == 1)std::cout << "Encontrei um numero um na posição x:" << numero.x + x, " e y:" << numero.y + y << std::endl;
  }
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...