题目
综合:读入矩阵,转置后输出
思路
读 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