编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列)
代码
/**
* 二维数组转置,交换行和列
*/
public class Main {
public static void main(String[] args) {
int[][] a = new int[][]{{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
convert(a);
}
public static void convert(int [][] a){
int N = a.length;
int M = a[0].length;
for (int j= 0; j< M; j++){
for(int i = 0; i < N; i ++){
System.out.print(a[i][j]+" ");
}
System.out.println();
}
System.out.println();
// //第一种直接打印
// for(int i = N-1; i >= 0; i --){
// for (int j = M-1; j >=0; j --){
// System.out.print(a[i][j]);
// }
// System.out.println();
// }
// System.out.println();
// //第二种
// for (int i = 0; i < N/2; i ++){
// for (int j = 0; j < M; j ++){
// int tmp = a[i][j];
// a[i][j] = a[N-i-1][M-j-1];
// a[N-i-1][M-j-1] = tmp;
// }
// }
// for (int i = 0; i < N; i ++){
// for (int j = 0; j < M; j ++){
// System.out.print(a[i][j]);
// }
// System.out.println();
// }
}
}
答案
1 4 7 10
2 5 8 11
3 6 9 12