Boa tarde, não estou conseguindo executar o código completamente.
Ele trava quando declaro o último valor da matriz. (numeros[3,3])
package com.loiane.cursojava.aula20;
import java.util.*;
public class Exer03_1 {
public static void main(String[] args) {
int[][] numeros = declararValoresVetor();
int contadorPar = obtendoValoresParaDeclararTamanhoDeParImpar(numeros);
int[] par = new int[numeros.length - contadorPar];
int aumentaPar = 0;
int[] impar = new int[numeros.length - par.length];
int aumentaImpar = 0;
for (int i = 0; i < impar.length; i++) {
for (int j = 0; j < impar.length; j++) {
if ((numeros[i][j] % 2) == 0) {
par[aumentaPar] = numeros[i][j];
aumentaPar++;
} else {
impar[aumentaImpar] = numeros[i][j];
aumentaImpar++;
}
}
}
imprimirVetorPrincipalMaisParImpar(numeros, par, impar);
}
public static void imprimirVetorPrincipalMaisParImpar(int[][] numeros, int[] par, int[] impar) {
for (int i = 0; i < impar.length; i++) {
for (int j = 0; j < impar.length; j++) {
System.out.print(numeros[i][j] + " ");
}
System.out.println();
}
for (int i = 0; i < par.length; i++) {
System.out.print("Numeros pares: " + par[i]);
}
System.out.println();
for (int i = 0; i < impar.length; i++) {
System.out.print("Numeros impares: " + impar[i]);
}
}
public static int obtendoValoresParaDeclararTamanhoDeParImpar(int[][] numeros) {
int contadorPar = 0;
for (int i = 0; i < numeros.length; i++) {
for (int j = 0; j < numeros.length; j++) {
if ((numeros[i][j] % 2) == 0) {
contadorPar++;
}
}
}
return contadorPar;
}
public static int[][] declararValoresVetor() {
Scanner sc = new Scanner(System.in);
int[][] numeros = new int[4][4];
for (int i = 0; i < numeros.length; i++) {
for (int j = 0; j < numeros.length; j++) {
System.out.println("Informe um valor para a posicao [" + i + "," + j + "]: ");
numeros[i][j] = sc.nextInt();
}
}
return numeros;
}
}