Ir ao conteúdo
  • Cadastre-se

C Sequência de caracteres em matriz


carlos20030

Posts recomendados

Olá,

 

O meu problema é o seguinte:

Eu recebo uma matriz com y linhas e z colunas com "X" e "O". Exemplo:

Matriz(4x4)

X O O X

X X X X

O X X X

X X X X

 

E devo devolver quantas sequências de bolinhas eu possuo na matriz. No exemplo acima e abaixo (em negrito) temos duas.

Matriz (4x3)

O X

X  X O

O X X

X O O

 

Eu pensei em usar ifs para verificar todas as linhas e colunas nas oito direções possíveis de um elemento [y][z] da matriz, mas me parece muito complicado. Alguém tem alguma ideia?

Att.

  • Triste 1
Link para o comentário
Compartilhar em outros sites

Seu caso é complicado, pois você precisa primeiro armazenar as matrizes dadas após o código pronto, portanto dispensa o uso de apenas if's.

 

Porém, se fosse apenas esses exemplos que você passou ai, pode usar if, mas se observarmos as possibilidades, podemos apenas ter sequencias indefinidas, como:

X O O

O O O

O O X

Então exigirá muitos if's.

 

Enfim, use um for e conte quantas bolinhas estão sendo encontradas na linha, caso forme uma sequência você imprime a mensagem na tela. Caso contrário continue na próxima linha e zere os contadores.

 

Link para o comentário
Compartilhar em outros sites

O caso é geral, não são somente esses exemplos.

Citação

Enfim, use um for e conte quantas bolinhas estão sendo encontradas na linha, caso forme uma sequência você imprime a mensagem na tela. Caso contrário continue na próxima linha e zere os contadores.

Eu preciso determinar quantas sequências totais de bolinhas eu tenho e ao final dar somente uma resposta como saída. Deste modo que você citou eu faria:

X O O X X X O (contei 3 bolinhas e 2 "sequências", considerando apenas uma linha)

 

Agora digamos que a linha de baixo seja isso:

X O O X X X O (contei 3 bolinhas e 2 "sequências", considerando apenas uma linha e zerei os contadores)

O X X X O X X (contei 2 bolinhas e teoricamente 2 "sequências")

 

Então ao final eu teria 4 sequências, quando a resposta correta seriam 3 sequências (observe em colorido).

Ps: considere uma bolinha sozinha como "sequência", por isso as aspas.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Seu raciocínio pode ser o seguinte: X O O X X X O. "For" está na posição 0 e não é uma bolinha, nada a ser feito. "For" está na posição 1 e achei uma bolinha, verifico se (i - 1) é uma bolinha  (sendo "i" a variável usada no "for" para percorrer), se for nada a ser feito, caso contrário incrementa 1 em "quant_seq".

Tome cuidado com exceções do tipo: Se a posição 0 for uma bolinha você fará 0 - 1.

Foi o que veio na cabeça de primeira. Mesmo que funcione, com certeza existe uma solução mais elegante.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!