VILLA_LOBOS Postado Junho 20, 2005 Denunciar Share Postado Junho 20, 2005 alguém consegue fazer o seguinte, e me dar uma força?preciso preencher um vetor de 10 posições... até ae beleza...em seguida, preciso inverter esse vetor....eu criei outor vetor, (matriz unidimensional).....e fiz dois for..... mas não to conseguindo a lógicaalguém pode me ajudar?um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VILLA_LOBOS Postado Junho 20, 2005 Autor Denunciar Share Postado Junho 20, 2005 olha o codigo aeimport javax.swing.*;public class Exercicio2 { /** Creates a new instance of Exercicio2 */ public Exercicio2() { } /** * @param args the command line arguments */ public static void main(String[] args) { double[] matriz,maux; matriz = new double[10]; maux= new double[10]; int i=0,j=0; String s="",c=""; int aux=0; for (i=0; i<matriz.length; i++) { s+=(JOptionPane.showInputDialog("Informe valor")); matriz = Double.parseDouble(s); } JOptionPane.showMessageDialog(null,"Valores \n"+s); aux=maux.length; for (i=0; i<matriz.length; i++) { maux[aux] = matriz; c += Double.toString(maux[aux]); aux--; } JOptionPane.showMessageDialog(null,"Valores Invertidos \n"+c); } }ta dando esse erro:java.lang.ArrayIndexOutOfBoundsException: 10 at Exercicio2.main(Exercicio2.java:42) deve ser estouro de matriz, mas como eu resolve, hein? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Junho 21, 2005 Denunciar Share Postado Junho 21, 2005 Aqui:aux=maux.length; Você atribui o "tamanho" (length) do vetor para a "aux", que é 10, porém os índices vão de 0 a 9 (ou seja, são 10 elementos). Length te retorna o tamanho do vetor e não o último índice dele (esse é Length-1). Agora, não seria mais simples apenas inverter os valores das posições? 0 com 9, 1 com 8, 2 com 7, 3 com 6 e 4 com 5? Veja: import javax.swing.JOptionPane; public class Exercicio2 { public static void main(String[] args) { double matriz[] = new double[10]; int i=0; double aux; String s = ""; String valores = ""; String ivalores = ""; for (i=0; i<matriz.length; i++) { s = JOptionPane.showInputDialog("Informe valor"); matriz[i] = Double.parseDouble(s); valores += s + ", "; } JOptionPane.showMessageDialog(null,"Valores \n" + valores); for (i=0; i<(matriz.length/2); i++) { aux = matriz[i]; matriz[i] = matriz[matriz.length-i-1]; matriz[matriz.length-i-1] = aux; } for (i=0; i<matriz.length; i++) { ivalores += Double.toString(matriz[i]) + ", "; } JOptionPane.showMessageDialog(null,"Valores Invertidos \n" + ivalores); } }Sacou? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - wagner - Postado Junho 22, 2005 Denunciar Share Postado Junho 22, 2005 valeu, perfeito Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
VILLA_LOBOS
alguém consegue fazer o seguinte, e me dar uma força?
preciso preencher um vetor de 10 posições... até ae beleza...
em seguida, preciso inverter esse vetor....
eu criei outor vetor, (matriz unidimensional).....
e fiz dois for..... mas não to conseguindo a lógica
alguém pode me ajudar?
um abraço.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.