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




    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,110
    Likes:
    112
  3. Raigen

    Raigen Miembro de bronce

    Registro:
    13 Jul 2015
    Mensajes:
    1,129
    Likes:
    149
    Esa identación }:)
     
  4. jhony0025

    jhony0025 Miembro nuevo

    Registro:
    16 May 2016
    Mensajes:
    7
    Likes:
    0
    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:
    65
    Likes:
    9
    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
    ok gracias bro
     
  7. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46
    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:
    5,332
    Likes:
    565
  9. anthony23

    anthony23 Miembro maestro

    Registro:
    5 Dic 2015
    Mensajes:
    343
    Likes:
    13
    es c#?