Eu tenho esse código em Java que quero inverter nos vetores pedidos de A e quero inverter em B, porém está apresentando erro:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: -1
at br.com.tlmtech.livro.ExercicioH.main(ExercicioH.java:20)
Segue o código abaixo:
package br.com.tlmtech.livro;
import javax.swing.JOptionPane;
public class ExercicioH {
public static void main(String[] args) {
int[] a = new int[20];
int[] b = new int[20];
int j = 19, i, n = 0;
for (i = 0;i < 20;i++){
n++;
a[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe o " +n +"º numero para A.:"));
b[j] = a[i];
j--;
}
StringBuilder mensagem = new StringBuilder("Valores de A e B:\n");
for (i = 0;i<20;i++){
mensagem.append("A[" + i + "] = " + a[i] + " \tB[" + i + "] = " + b[j] + "\n");
}
System.out.println(mensagem);
}
}
Alguém poderia me ajudar, o vetor a[0] precisa estar no b[19], o lance está na questão dos arrays que começa em 0, no C eu consegui, porém no Java aparece esse erro
Vocẽ inicializa a variável j com valor 19. Itera sobre o array, subtraindo uma unidade do valor de j em cada iteração.
Quando chega no último laço, já está zerado.
Após a primeira execução do laço de repetição, estoura a exceção, pois, não existem arrays e/ou listas com a posição -1.
#include <stdio.h> #include <conio.h> #include <stdlib.h>
main ()
{
int a[20];
int b[20];
int j = 19, i, n = 0;
for (i = 0;i < 20;i++){
n++;
printf(“Informe o %d. numero para A.: “,n);
scanf(”%d”,&a[i]);
b[j] = a[i];
j–;
}
printf("\n");
printf(“Valores de A e B:\n”);
for (i = 0;i<20;i++){
printf(“A[%d] = %d\t B[%d] = %d\n”,i,a[i],i,b[i]);
}
printf("\n----------------FIM---------------------");
getch(); //esperar por um fim
}