si te fijas en el resultado que te da, lo que te ocurre es que la columna que deseas borrar pasa a valer 0 y una de las columnas queda sin copiar en la nueva matriz, eso es porque la nueva matriz no almacena los valores correctamente
Imaginandonos que quieres borrar la columna 1 de la siguiente matriz,
1 2 3
1 2 3
1 2 3
^
Queremos borrar esta
Aqui:
en la primera iteración J vale 0 y C vale 0 también entonces en la matriz "destino" en la posición destino[0][0] no se inserta nada... y J pasa a valer J+1, entonces esa posición de la matriz pasa a cargarse con 0 por defecto.
Por eso cada vez que J vale lo mismo que C se inserta 0.
Es decir, tienes que usar una variable auxiliar que haga referencia a las nueva matriz así:
Código Java:
Ver originalpublic static int[][] quitaColumna(int [][]mxn){
Scanner teclado
=new Scanner
(System.
in); int f;
System.
out.
println("Que columna desea eliminar."); f=teclado.nextInt();
f=f-1;
int[][] destino = new int[mxn.length][mxn[0].length-1];
for(int fil=0;fil<mxn.length;fil++){
for(int col=0, k=0;col<mxn[0].length;col++){
if(col!=f){
destino[fil][k]=mxn[fil][col];
k++;
}
}
}
return destino;
}
Pruebalo y modifica el código y como te dije haz una traza paso a paso para verlo claramente :).
¿Que estas preparando exámenes?
Un saludo.
PD.
para hacer referencia a las columnas... se hace como hago yo en el for interno para recorrer la matriz
matriz[0].length
no hace falta que pases el tamaño como parámetro ;)