题目

综合:读入矩阵,转置后输出

思路

读 m,n 与矩阵 a[m][n],建 b[n][m] 双重循环赋值转置;打印 b 行列格式。

解题分析

转置即行列互换:b[j][i]=a[i][j]。若允许原地且矩阵方阵,可在原矩阵上交换 a[i][j] 与 a[j][i];一般 m×n 矩形则另开 b 更清晰。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int m = 2, n = 3;
        int[][] a = new int[m][n];
        a[0][0] = 1; a[0][1] = 2; a[0][2] = 3; a[1][0] = 4; a[1][1] = 5; a[1][2] = 6;
        for (int j = 0; j < n; j++) {
            for (int i = 0; i < m; i++) System.out.print(a[i][j] + (i + 1 < m ? " " : "\n"));
        }
    }
}

运行示例

输出:

1 4
2 5
3 6

其它写法

下面每种写法都是完整程序,输入输出格式与正文一致,便于对照。

按列收集

程序:


public class Main {
    public static void main(String[] args) {
        int m = 2, n = 3;
        int[][] a = new int[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                a[i][j] = 1;
            }
        }
        for (int j = 0; j < n; j++) {
            for (int i = 0; i < m; i++) {
                System.out.print(a[i][j] + (i + 1 < m ? " " : "\n"));
            }
        }
    }
}

运行示例

输出:

1 4
2 5
3 6