Segue o código conforme o seu enunciado, e o jeito que você estava fazendo tava quase lá
/**
*Ler 20 elementos de uma matriz A e construir uma matriz B da mesma dimensão com os mesmos
*elementos da matriz A, sendo que deverão estar invertidos. Ou seja, o primeiro elemento de A
*passa a ser o último de B, o segundo elemento de A passa a ser o penúltimo de B e assim por diante.
*Apresentar as matrizes A e B.
* @param args
*/
public static void main(String[] args) {
double a[] = new double[20];
double b[] = new double[20];
double numero;
String leitura = "";
for (int i = 0; i < a.length; i++) {
leitura = JOptionPane.showInputDialog("Digite o valor ");
numero = Double.parseDouble(leitura);
a[i] = numero;
}
for (int i = a.length - 1, pos = 0; i >= 0; i--, pos++) {
b[pos] = a[i];
JOptionPane.showMessageDialog(null, "Matriz A: " + a[pos]);
JOptionPane.showMessageDialog(null, "Matriz B: " + b[pos]);
}
}
Se isso resolveu seu problema coloque [RESOLVIDO] no assunto do fórum !
Boa Noite
O problema em seu código está na linha 16, quando i = a.length, ele recebe o valor 20, mas como os índices dos vetores iniciam em 0 o índice máximo que você possui é 19, portanto o código falha logo na primeira instrução do for. Para resolver faça i = a.length-1.
[quote=Daniel Girotto]Boa Noite
O problema em seu código está na linha 16, quando i = a.length, ele recebe o valor 20, mas como os índices dos vetores iniciam em 0 o índice máximo que você possui é 19, portanto o código falha logo na primeira instrução do for. Para resolver faça i = a.length-1.
Abraço!
[/quote]
Na verdade tem mais coisa errada:
A variável i deve ser iniciada em cada for.
A variável j deve ser iniciada com 0.
enfim… segue corrigido:
[code] public static void main(String[] args) {
double a [] = new double [20];
double b [] = new double [20];
double num;
int j = 0;
String snum, sa = “”, sb = “”;
for (int i = 0; i < a.length; i++){
snum = JOptionPane.showInputDialog("digite o valor");
num = Double.parseDouble(snum);
a[i] = num;
sa = sa+a[i]+" ";
}
for (int i = a.length; i > 0; i--){
b[j] = a[i-1];
sb = sb+b[j++]+" ";
}
JOptionPane.showMessageDialog(null,"Matriz A: " + sa + "\nMatriz B: " + sb);
}[/code]