Preciso de ajuda nesse exercicio

Estou fazendo o seguinte exercicio:

Escreva um algoritmo em Java que leia 10 números naturais (int). No final da execução seu algoritmo devera imprimir:

A soma dos números pares e os números pares que foram lidos (se a soma deles for maior que a soma dos ímpares).
ou
A soma dos números impares e os números ímpares que foram lidos (se a soma deles for maior que a soma dos pares).

Scanner leia = new Scanner(System.in);
int num,i,soma=0,somap=0;
int[] vetorimpar = new int[10];
int[] vetorpar = new int[10];

for(i=0;i<10;i++){
num = leia.nextInt();
if(num%2==1)
vetorimpar[i] = num;
soma = soma + vetorimpar[i];
if(num%2==0)
vetorpar[i] = num; 
somap = somap + vetorpar[i]; } 

if(soma > somap){
System.out.println(soma);
System.out.println(vetorimpar[i]); }
else{
System.out.println(somap);
System.out.println(vetorpar[i]); }

}

}

Nesse código que eu fiz, da o seguinte erro: Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at Main.main(Main.java:23)

Não sei como resolver isso, alguem da um help :slight_smile:

O erro diz que vc está tentando acessar uma posição do seu vetor que não existe.
Então, quando você vai imprimir o vetor com o código abaixo:
System.out.println(vetorimpar[i]);
sua variavel “i” está valendo 10, e como o seu vetor só tem 9 posições é apresentado esse erro.