Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/12/2013, 04:31
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Matrices en java

Buenas,
para empezar en el método muestraMatriz no es necesario que le pases el numero de filas y de columnas para imprimir la matriz, puedes omitir eso dejandolo así,

Código Java:
Ver original
  1. public static void muestraMatriz(int [][]mxn){
  2.         int i, j;        
  3.         for(i=0;i<mxn.length;i++) {
  4.             System.out.print("\n");
  5.             for(j=0;j<mxn[i].length;j++){
  6.                 System.out.print(mxn[i][j]+" ");
  7.             }
  8.         }
  9.     }


Para tu segunda pregunta,
Tampoco hace falta que pases los n y m argumentos para llamar a quitarFila, ya que no los vas a usar.
Puedes hacerlo como estas intentando tu utilizando el método ArrayCopy(), lo correcto ya que creas el método quitarFila() sería hacerlo dentro de ese método de la siguiente manera:

Código Java:
Ver original
  1. public static int[][] quitaFila(int [][]mxn){
  2.         Scanner teclado=new Scanner (System.in);
  3.         int f;
  4.         System.out.print("\n");
  5.         System.out.println("Que fila desea eliminar.");
  6.         f=teclado.nextInt();
  7.         f=f-1;
  8.         int[][] destino = new int[mxn.length - 1][];
  9.         int j=0;
  10.         for(int i=0;i<mxn.length;i++){
  11.             if(i!=f){
  12.                 System.arraycopy(mxn, i, destino, j, 1);
  13.                 j++;
  14.             }
  15.         }
  16.        
  17.         return destino;
  18.        
  19.     }

Lo que hace el código es pedir por pantalla la fila que se desea borrar, e ir recorriendo la matriz que se generó anteriormente, y copiando las filas a una matriz secundaria (salvo la fila que se indicó que se almacena en la variable f) y por ultimo retorna la nueva matriz que se ha generado y el main quedaria asi:

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         Scanner teclado=new Scanner(System.in);
  3.         int n=0, m=0;
  4.        
  5.         System.out.println("Filas que tendrá la matriz.");
  6.         n=teclado.nextInt();
  7.        
  8.         System.out.println("Columnas que tendrá la matriz.");
  9.         m=teclado.nextInt();
  10.        
  11.         int [][] mxn = new int[n][m];
  12.        
  13.         introMatriz(mxn, n, m);
  14.         muestraMatriz(mxn);
  15.         mxn=quitaFila(mxn);
  16.         muestraMatriz(mxn);
  17.        
  18.     }

Por ultimo, viendo que estas aprendiendo. te doy un consejo, la mejor forma de entender estos ejercicios es coger un papel y un bolígrafo y dibujar la matriz y seguir la traza del programa paso a paso, para comprender que se hace y porque y sobretodo intentarlo, una y otra vez y repetir los ejercicios hasta que se comprendan.

Un saludo.