Ayuda para poder encontrar elementos seguidos de una matriz de carácteres.
Publicado por Gustavo (1 intervención) el 20/11/2019 23:12:16
Buenas tardes, el motivo de este tema es para ver si pueden lograr identificar cuál es el error en mi código, desde ya muchísimas gracias.
El objetivo es que de una matriz de 6 x 6 poder encontrar caracteres parecidos (4 como mínimo y como máximo también) los cuáles deben ir uno seguido del otro y la búsqueda de los mismos debe ser en forma HORIZONTAL.
Por si no he me expresado bien, lo que se busca es encontrar solamente 4 caracteres seguidos e iguales, si no son 4 el programa por así decirlo no funcionaría (no sirven 1,2,4,5 o 6 caracteres iguales seguidos)
Este es mi código:
Los problemas que he encuentro son:
* A la hora de ejecutar el "System.out.println" aclarándome donde se encuentran letras iguales, me reconoce las de la fila '0' a pesar de que los valores que son iguales no están seguidos.
Por favor, si pueden darme una mano les estaría totalmente agradecido!.
El objetivo es que de una matriz de 6 x 6 poder encontrar caracteres parecidos (4 como mínimo y como máximo también) los cuáles deben ir uno seguido del otro y la búsqueda de los mismos debe ser en forma HORIZONTAL.
Por si no he me expresado bien, lo que se busca es encontrar solamente 4 caracteres seguidos e iguales, si no son 4 el programa por así decirlo no funcionaría (no sirven 1,2,4,5 o 6 caracteres iguales seguidos)
Este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Ejemplo {
public static void main(String[] args) {
int cont1 = 0;
char matriz[][] =
{ {'A','A','C','D','A','A'}, // Error -> 4 elementos 'A' horizontales pero no seguidos.
{'A','B','C','D','E','1'},
{'A','B','C','D','E','1'},
{'E','E','E','E','D','E'},
{'A','B','C','D','E','1'},
{'A','B','D','D','D','D'}};
for (int i = 0; i < matriz.length; i++) {
System.out.println("");
for (int j=0; j<matriz[0].length; j++) {
System.out.print(matriz[i][j] + " ");
}
}
System.out.println("");
System.out.println("");
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[0].length; j++) {
for (int k = 0; k < matriz[0].length; k++) {
if (matriz[i][j] == matriz[i][k]) {
cont1++;
} // fin if
}// fin for = k
if(cont1 != 4) {
cont1 = 0;
} // fin if
else {
System.out.println("Se ha encontrado en la linea: "+(i+1)+", 4 coincidencias de letras iguales");
break;
}
} // fin for = j
} // fin for = i
Los problemas que he encuentro son:
* A la hora de ejecutar el "System.out.println" aclarándome donde se encuentran letras iguales, me reconoce las de la fila '0' a pesar de que los valores que son iguales no están seguidos.
Por favor, si pueden darme una mano les estaría totalmente agradecido!.
Valora esta pregunta


0