diciembre 06, 2011

Imprimir un Arreglo de manera Inversa

Hace unos dias (como 10 o mas dias para ser precisos) un lector preguntaba como invertir un arreglo sin utilizar otro arreglo, es muy sencillo, para mostrar eso solo hace falta imprimir el arreglo ya creado de forma inversa con el for:

//Archivo: InvertirArreglo.java

public class InvertirArreglo{
      
       public static void main(String args[]){
            
             int numeros[] = {10, 20, 30, 40, 50};
            
              //Bloque 1: Impresion de nuestro arreglo.
             System.out.println("Indice\tValor");
             for(int contador=0; contador<numeros.length; contador++)
                    System.out.println(contador+"\t"+numeros[contador]);
            
              //Bloque 2: Impresión invertida del arreglo.
             System.out.println();
             System.out.println("Indice\tValor");
             for(int contador=numeros.length-1; contador>=0; contador--)
                    System.out.println(contador+"\t"+numeros[contador]);
       }
}

Se declara int numeros[] y se le asignan valores de 10, 20, 30, 40 y 50. En el bloque 1 se imprime nuestro arreglo de manera normal, ordenado en el orden en que fuimos insertando los elementos en el arreglo.

En el bloque 2 se imprimen los elementos de nuestro arreglo de forma inversa a como los fuimos insertando (de atrás hacia adelante). Para esto usamos un for indicando que nuestro contador empezara a contar desde  lo que retorne la función numeros.length (que retorna el tamaño de nuestro arreglo, en este caso: 5) menos 1, osea empezara a contar desde 4, que es el ultimo indice de nuestro arreglo numeros[], y le damos de condición de que pare de iterar hasta que contador llegue a 0 y en esta ocasión hacemos decremento de nuestro contador (así irá recorriendo nuestro arreglo de atrás para adelante: 4, 3, 2, 1 y 0 que son los indices de nuestro arreglo). Y finalmente en el cuerpo del for le indicamos que vaya imprimiendo cada linea, cada indice de nuestro arreglo con su respectivo valor.

10 comentarios:

  1. ME SIRVIO DE MUCHO GRACIAS POR EL APORTE

    ResponderBorrar
  2. muchisimas gracias
    fue de mucha ayuda <3

    ResponderBorrar
  3. Como podria realizar si tengo dos vectores y desea hacer la suma pero el segundo vector tiene que subar de atras para adelante y guardarlo en un tercer vector

    ResponderBorrar
    Respuestas
    1. package Practica_2020;

      import java.util.Scanner;
      /**
      *
      * @author yesid
      */
      public class Corte3Diego {

      public static void main(String[] args) {
      Scanner Teclado = new Scanner(System.in);

      int[] vector1 = new int[3];
      int[] vector2 = new int[3];
      int[] vector3 = new int[3];


      for (int i = 0; i < vector1.length; i++) {
      System.out.println("Ingrese numero:"+" "+i);
      vector1[i] = Teclado.nextInt();
      }
      for (int i = 0; i < vector2.length; i++) {
      System.out.println("Ingrese numero:"+" "+i);
      vector2[i] = Teclado.nextInt();
      }

      for (int j = 0; j < vector1.length; j++) {
      for (int m = vector2.length-1; m >= 0; m--) {
      vector3[m] = vector1[j]+vector2[m];
      System.out.println(""+vector3[m]);
      }
      }

      for (int s = 0; s < vector3.length; s++) {
      System.out.println("res:"+vector3[s]);
      }
      }

      }

      Borrar
  4. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  5. Como puedo invertir esto?
    class Main {
    public static void main(String[] args) {
    int sumf = 0, sumc;
    int[][] matriz = new int[4][5];
    //Llenar la matriz
    for (int r=0;r<matriz.length;r++){
    sumf=0;
    for(int c=0;c<matriz[r].length;c++){
    matriz[r][c]=(int)(Math.random()*50);
    System.out.print(matriz[r][c]+"\t");
    sumf=sumf+matriz[r][c];
    }
    System.out.println("La suma es: "+sumf);

    ResponderBorrar
  6. Escribir un programa que lea un vector de 15 elementos y lo imprima invertido.Alguirn me pude ayudar con este ejercicio rn java

    ResponderBorrar
  7. tenia el metodo, pero no me funcionaba. porque no le puse el -1 el cual no entendia. pero aqui me lo aclarastes que con -1 nos referimos a los indices. gracias crack

    ResponderBorrar
  8. por que tengo error al compilar el programa?

    ResponderBorrar