public class _test{
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int[] vetor;
int[] vetorPares = new int[0];
int[] vetorImpares = new int[0];
int qtdNumeros;
System.out.println("Este programa recebe números e separa os pares dos ímpares");
System.out.print("Digite a quantidade de números que quer informar: ");
qtdNumeros = entrada.nextInt();
vetor = new int[qtdNumeros];
for (int i = 0; i < qtdNumeros; i++) {
System.out.print("Digite o " + (i + 1) + "º numero: ");
vetor[i] = entrada.nextInt();
}
for (int i = 0; i < qtdNumeros; i++) {
if (vetor[i] % 2 == 0) {
vetorPares = new int[vetor[i]];
}if (vetor[i] % 2 != 0){
vetorImpares = new int[vetor[i]];
}
}
entrada.close();
System.out.println("Números pares: " + Arrays.toString(vetorPares));
System.out.println("Números impares: " + Arrays.toString(vetorImpares));
}
A cada iteração você está criando um novo vetorPares e um novo vetorImpares.
Você também não precisa fazer dois if, se o número não é par, obviamente ele é impar, então não há necessidade de testar se é ímpar.
Faça assim:
int pares = 0;
int impares = 0;
for (int numero : vetor) {
if (numero % 2 == 0) {
vetorPares[pares] = numero;
pares++;
} else {
vetorImpares[impares] = numero;
impares++;
}
}
Agora as variáveis “pares” e “impares” dentro dos colchetes esta apresentado um erro “Array index is out of bounds” … esta fora dos limites.
int pares = 0;
int impares = 0;
for (int numero : vetor) {
if (numero % 2 == 0) {
vetorPares[pares] = numero; // Nesta linha
pares++;
} else {
vetorImpares[impares] = numero; // E nesta
impares++;
}
}