Caso exista uma sequencia de (neste caso) tres valores iguais nas linhas ou colunas ou diagonais voce deve informar onde isso esta acontecendo.
Matriz Original
…123
1 xxx
2 xxx
3 xxx
Exemplo1
1 2 3
1 1 3
1 2 1
Coluna 1 aparece o valor 1
Diagonal principal aparece o valor 1
Exemplo2
1 2 3
1 2 3
1 2 3
Coluna 1 aparece o valor 1
Coluna 2 aparece o valor 2
Coluna 3 aparece o valor 3
Exemplo3
1 1 1
1 1 1
1 1 1
Coluna 1 aparece o valor 1
Coluna 2 aparece o valor 1
Coluna 3 aparece o valor 1
Linha 1 aparece o 1
Linha 2 aparece o 1
Linha 3 aparece o 1
Diagonal principal aparece 1
Diagonal secundaria aparece o 1
Se for exatamente isso uma possivel solução é:
for(inti=0;i<matriz.length;i++){for(intj=0;j<matriz[0].length;j++){//diagonalprincipalif(i==j){if(matriz[i][j]==1){d11++;}elseif(matriz[i][j]==2){d12++;}elseif(matriz[i][j]==3){d13++;}}//diagonalsecundariaif(i+j==matriz.length-1){if(matriz[i][j]==1){d21++;}elseif(matriz[i][j]==2){d22++;}elseif(matriz[i][j]==3){d23++;}}//1ªlinhaif(i==0){if(matriz[i][j]==1){l11++;}elseif(matriz[i][j]==2){l12++;}elseif(matriz[i][j]==3){l13++;}}//2ªlinhaif(i==1){if(matriz[i][j]==1){l21++;}elseif(matriz[i][j]==2){l22++;}elseif(matriz[i][j]==3){l23++;}}//3ªlinhaif(i==2){if(matriz[i][j]==1){l31++;}elseif(matriz[i][j]==2){l32++;}elseif(matriz[i][j]==3){l33++;}}//1ªcolunaif(j==0){if(matriz[i][j]==1){c11++;}elseif(matriz[i][j]==2){c12++;}elseif(matriz[i][j]==3){c13++;}}//2ªcolunaif(j==1){if(matriz[i][j]==1){c21++;}elseif(matriz[i][j]==2){c22++;}elseif(matriz[i][j]==3){c23++;}}//3ªcolunaif(j==2){if(matriz[i][j]==1){c31++;}elseif(matriz[i][j]==2){c32++;}elseif(matriz[i][j]==3){c33++;}}}//for}//for//LINHASif(l11<3&&l21<3&&l31<3&&l12<3&&l22<3&&l32<3&&l13<3&&l23<3&&l33<3){//Emnenhumalinhaosvaloresserepetem}else{if(l11>=3){System.out.println("Linha 1 aparece o valor 1");}elseif(l12>=3){System.out.println("Linha 1 aparece o valor 2");}elseif(l13>=3){System.out.println("Linha 1 aparece o valor 3");}if(l21>=3){System.out.println("Linha 2 aparece o valor 1");}elseif(l22>=3){System.out.println("Linha 2 aparece o valor 2");}elseif(l23>=3){System.out.println("Linha 2 aparece o valor 3");}if(l31>=3){System.out.println("Linha 3 aparece o valor 1");}elseif(l32>=3){System.out.println("Linha 3 aparece o valor 2");}elseif(l33>=3){System.out.println("Linha 3 aparece o valor 3");}}//COLUNASif(c11<3&&c21<3&&c31<3&&c12<3&&c22<3&&c32<3&&c13<3&&c23<3&&c33<3){//Emnenhumacolunaosvaloresserepetem}else{if(c11>=3){System.out.println("Coluna 1 aparece o valor 1");}elseif(c12>=3){System.out.println("Coluna 1 aparece o valor 2");}elseif(c13>=3){System.out.println("Coluna 1 aparece o valor 3");}if(c21>=3){System.out.println("Coluna 2 aparece o valor 1");}elseif(c22>=3){System.out.println("Coluna 2 aparece o valor 2");}elseif(c23>=3){System.out.println("Coluna 2 aparece o valor 3");}if(c31>=3){System.out.println("Coluna 3 aparece o valor 1");}elseif(c32>=3){System.out.println("Coluna 3 aparece o valor 2");}elseif(c33>=3){System.out.println("Coluna 3 aparece o valor 3");}}//DIAGONAISif(d11<3&&d21<3&&d12<3&&d22<3&&d13<3&&d23<3){//Emnenhumadiagonalosvaloresserepetem}else{if(d11>=3){System.out.println("Diagonal Principal aparece o valor 1");}elseif(d12>=3){System.out.println("Diagonal Principal aparece o valor 2");}elseif(d13>=3){System.out.println("Diagonal Principal aparece o valor 3");}if(d21>=3){System.out.println("Diagonal Secundaria aparece o valor 1");}elseif(d22>=3){System.out.println("Coluna Secundaria aparece o valor 2");}elseif(d23>=3){System.out.println("Coluna Secundaria aparece o valor 3");}}}//main
Não sei se é possivel, mas gostaria de saber do pessoal do forum se este codigo pode ser implementado para que funcione com matriz de tamanho N, pois este aqui que eu postei nao funciona.
Poneis123
gpd38 num da dessas cara… possivelmente é um trabalho de escola q ele se quer vai ler o q vc fez, vai copiar e colar… e esse não é o objetivo do forum.
pvrsouza
Poneis123:
gpd38 num da dessas cara... possivelmente é um trabalho de escola q ele se quer vai ler o q vc fez, vai copiar e colar... e esse não é o objetivo do forum.
Verdade! Mas como o gpd38 ( que realmente tentou fazer e fez! ) e ele perguntou sobre a possibilidade de definir ter uma matriz [n][n], eu vou postar minha sugestão.
P.S: Estou sem JDK instalado nessa máquina então não consegui testar! Tive que fazer tudo no NotePad++ e o teste de mesa, literalmente, aconteceu na mesa! Testem! Qualquer coisa me avisem!
publicclassPrincipal{publicstaticvoidmain(Stringargs[]){Scannerin=newScanner(System.in);System.out.println("Informe o tamanho da matriz (linhas)");intl=in.nextInt();System.out.println("Informe o tamanho da matriz (colunas)");intc=in.nextInt();int[][]matTeste;Matrizm=newMatriz(l,c);m.preencherMatriz();matTeste=m.getMatriz();for(intx=0;x<matTeste.length;x++){for(inty=0;y<matTeste[0].length;y++){System.out.print(matTeste[x][y]);}System.out.println("");}System.out.println("-----------------------------------");m.checkColunas(matTeste);}}
publicclassMatriz{int[][]matrizPreenchida;publicMatriz(intl,intc){this.matrizPreenchida=newint[l][c];}publicvoidpreencherMatriz(){for(intx=0;x<this.matrizPreenchida.length;x++){for(inty=0;y<this.matrizPreenchida[0].length;y++){this.matrizPreenchida[x][y]=this.getNumeroAleatorio();}}}publicint[][]getMatriz(){returnthis.matrizPreenchida;}publicintgetNumeroAleatorio(){Randomobjeto=newRandom();intn=1+objeto.nextInt(6);returnn;}publicint[]getVetorAuxiliar(int[][]matriz,intcoluna){int[]vetorAuxiliar=newint[matriz.length];for(intx=0;x<matriz.length;x++){//carrega o vetorAuxiliar com os dados da colunavetorAuxiliar[x]=matriz[x][coluna];}returnvetorAuxiliar;}publicvoidcheckColunas(int[][]matriz){int[]vetorAuxiliar;intvarTemp=0;intqtdRepeticao=1;for(inty=0;y<matriz[0].length;y++){vetorAuxiliar=this.getVetorAuxiliar(matriz,y);varTemp=vetorAuxiliar[0];for(inti=1;i<vetorAuxiliar.length;i++){if(vetorAuxiliar[i]==varTemp){qtdRepeticao++;}else{if(qtdRepeticao>1){System.out.println("O valor"+varTemp+" esta repetido na coluna"+y);qtdRepeticao=1;}varTemp=vetorAuxiliar[i];}}if(qtdRepeticao>1){System.out.println("O valor esta repetido vezes"+varTemp+" por "+qtdRepeticao+" vezes");}}}}
I
igones
Pow cara, valew mesmo.
Sim, isso é um trabalho pra escola. Mas juro que não fiz por preguiça e sim, por falta de lógica. Só precisavam tentar me explicar, mas como vc fez, melhor ainda =]