Tema destacado:
Autor
|
Tema: Duda con un array, imprimir sus valores a la inversa. (Leído 766 veces)
|
|
KaRaLLo
|
Hola, intento que la salida de este arreglo se imprima a la inversa con un bucle for pero, llevo rompiendome todo el día la cabeza y no consigo nada. package Boletin9_1;
public class Main {
/** * @param args */ public static void main(String[] args) { double [] numeros=new double [6]; for(int i=0;i<numeros.length;i++){ numeros[i]=Math.floor((Math.random()*50+1)); } for (int x=6;x>=0;x--){ System.out.println(numeros[x]); } } }
Me tira esta excepción. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at areglosiniciar.Main.main(Main.java:20) Java Result: 1 BUILD SUCCESSFUL (total time: 0 seconds)
|
|
|
|
|
En línea
|
Los programadores escriben código aunque sepan que no debería funcionar, pero de todas formas lo intentan, como recompilar todo, después de eso, dios sabe porqué, funciona
|
|
|
bewa
Desconectado
Mensajes: 15
|
Hola xD. Posiblemente lo hayas solucionado pero por si acaso. El array tiene 6 casillas: las casillas 0,1,2,3,4,5. Y has inicializado el segundo bucle en 6(x=6), lo tienes que inicializar en 5 porque no existe la casilla 6. for (int x=5;x>=0;x--){ System.out.println(numeros[x]); }
|
|
|
|
« Última modificación: 12 Enero 2012, 14:59 por bewa »
|
En línea
|
|
|
|
|
[Case]
|
El error menciona un ArrayIndexOutOfBoundsException, lo que quiere decir es que de alguna forma le estas dando un indice que no se existe. Por lo que donde esta mal es la forma en que recorre el indice. Del ultimo for tienes que corrergirlo así: for (int x=6;x>=0;x--){ System.out.println(numeros[x]); } for (int x=5;x>=0;x--){ System.out.println(numeros[x]); } Esto es por que los indices de un arreglo se comienzan a contar desde el cero, ejemplo: A = [1,2,3,4,5]; donde A.length es 5, pero el index inicial es A[0] = 1 y asi hasta A[4] = 5
|
|
|
|
|
En línea
|
|
|
|
|
|
|
Debci
|
corneliusjesus, deja de ensuciar posts con respuestas insustanciales.
Saludos
|
|
|
|
|
En línea
|
|
|
|
Darhius
Desconectado
Mensajes: 427
Divide y vencerás.
|
También puedes hacer lo siguiente. public class Main{ public static void main(String args[]){ new Main(); } public Main(){ double [] numeros=new double [6]; System.out.println("Numeros"); for(int i=0;i<numeros.length;i++){ numeros[i]=Math.floor((Math.random()*50+1)); System.out.print("["+numeros[i]+"]"); } System.out.println("\nNumeros invertidos"); for (int x=numeros.length-1;x>=0;x--){ System.out.print("["+numeros[x]+"]"); } } } x=numeros.length-1 Saludos.
|
|
|
|
|
En línea
|
"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
|
|
|
alexis33de
Desconectado
Mensajes: 50
|
Creo q ya te dieron una buena respuesta, recuerda que el ultimo valor de un array , java no te deja utilizarlo por lo que si quieres imprimir un determinado numero de veces un numero, puedes también declarar tu arreglo con un valor mas al que necesites ejm:
double []numeros=new double [7];
Saludos
|
|
|
|
|
En línea
|
|
|
|
|
KaRaLLo
|
Muchas gracias 
|
|
|
|
|
En línea
|
Los programadores escriben código aunque sepan que no debería funcionar, pero de todas formas lo intentan, como recompilar todo, después de eso, dios sabe porqué, funciona
|
|
|
|
|