ayuda con esto si esta bien

Publicado en 'Programación' por jhony0025, 5 Jul 2016.





  1. jhony0025

    jhony0025 Miembro nuevo

    Registro:
    16 May 2016
    Mensajes:
    7
    Likes:
    0
    Temas:
    3




    me pueden decir que esta mal ...!

    1. Ingresar números enteros a una matriz de tamaño N x M e intercambiar los elementos de la primera columna con la última columna.

    Scanner leer=new Scanner(System.in);
    int i = 0,j = 0,n,m,A[][];
    int aux;
    A=new int[j];

    n=leer.nextInt();
    m=leer.nextInt();
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    {
    A[j]=leer.nextInt();
    }
    }
    for(i=0;i<n;i++)
    {
    aux=A[0];
    A[0]=A[m-1];
    A[m-1]=aux;
    }
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    {
    System.out.println(A[j]+"/t");
    }
    System.out.println("/n");
    }

    }

    }
     


  2. OzZyBoUrn

    OzZyBoUrn Miembro de bronce

    Registro:
    30 Abr 2016
    Mensajes:
    1,288
    Likes:
    135
    Temas:
    16
  3. Raigen

    Raigen Miembro de bronce

    Registro:
    13 Jul 2015
    Mensajes:
    1,334
    Likes:
    189
    Temas:
    32
    Esa identación }:)
     
  4. jhony0025

    jhony0025 Miembro nuevo

    Registro:
    16 May 2016
    Mensajes:
    7
    Likes:
    0
    Temas:
    3
    no me corre
    esto menos
    1. Ingresar números enteros a una matriz cuadrada de tamaño N e intercambiar los elementos de la primera columna con la última fila.
     
  5. Leohj

    Leohj Miembro frecuente

    Registro:
    7 Jun 2016
    Mensajes:
    240
    Likes:
    30
    Temas:
    3
    No inicialozaste el array A, esta mal. Deberia se asi: A= new int[m][n]
     
  6. jhony0025

    jhony0025 Miembro nuevo

    Registro:
    16 May 2016
    Mensajes:
    7
    Likes:
    0
    Temas:
    3
    ok gracias bro
     
  7. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    238
    Likes:
    51
    Temas:
    21
    Hola, imagino que yo lo habrás solucionado pero te dejo algunas observaciones.
    En primer lugar acostumbra a postear código utilizando las etiquetas code de esta forma es más legible y se respeta la identación y por otro lado más fácil de leer para algún forero que quiera ayudarte.

    Yendo al problema, ya te indicaron que la "inicialización" del arreglo está mal dado que el arreglo es de 2 dimensiones y sólo lo creas con una dimensión. Pongo el término entre comillas porque en realidad no es una inicialización sino una definición. Inicialización es cuando declaras y asignas a la vez:
    Código:
    int a;  // Esto es una declaración
    ...
    a = 999;  // Esto es una definición (o asignación mayormente conocida)
    ...
    int b = 999;  // Esto es una inicialización (Declaración + Definición)
    Son solo términos para que los tengas en cuenta.

    No era necesario inicializar las variables i, j ya que las vuelves a inicializar en el bucle.

    Una posible solución a tu ejercicio sería la siguiente:
    Código:
    public static void main(String[] args) {
            Scanner lector = new Scanner(System.in);
            int arreglo[][], aux;
            int x, y;
            int i, j;
          
            System.out.print("Deme dimension X: ");
            x = lector.nextInt();
            System.out.print("Deme dimension Y: ");
            y = lector.nextInt();
          
            arreglo = new int[x][y];
          
            System.out.println("\nLeyendo los elementos del arreglo");
            for(i = 0; i < x; i++)
                for(j = 0; j < y; j++) {
                    System.out.printf("[%d][%d] = ", i, j);
                    arreglo[i][j] = lector.nextInt();
                }
          
            System.out.println("\nEl arreglo original es");
            for(i = 0; i < x; i++) {
                for(j = 0; j < y; j++)
                    System.out.print(arreglo[i][j] + "\t");
                System.out.println();
            }
          
            // Intercambiar primera y última columna
            for(i = 0; i < x; i++) {
                aux = arreglo[i][y - 1];
                arreglo[i][y - 1] = arreglo[i][0];
                arreglo[i][0] = aux;
            }
          
            System.out.println("\nEl arreglo modificado es");
            for(i = 0; i < x; i++) {
                for(j = 0; j < y; j++)
                    System.out.print(arreglo[i][j] + "\t");
                System.out.println();
            }
        }
    
    Saludos.
     
  8. SoportePc

    SoportePc Miembro de oro

    Registro:
    28 Abr 2011
    Mensajes:
    7,448
    Likes:
    917
    Temas:
    120
  9. anthony23

    anthony23 Miembro maestro

    Registro:
    5 Dic 2015
    Mensajes:
    398
    Likes:
    14
    Temas:
    100
    es c#?