用JAVA编写一个程序, 将一个矩阵按照从外向里一顺时针顺序依次打印出每一个元素。例如如下矩阵 A = [ 2 5 6 ;−1 8 4 ;7 3 4 ] ,则依次打印出 2,5,6,4,4,3,7,-1,8
时间: 2023-06-08 12:03:41 浏览: 45
好的,这是一个技术问题,可以回答。以下是JAVA程序实现的代码:
```java
public static void printMatrixClockwise(int[][] matrix) {
if (matrix == null) return;
int rows = matrix.length;
int cols = matrix[0].length;
int start = 0;
while (cols > start * 2 && rows > start * 2) {
printMatrixInCircle(matrix, rows, cols, start);
start++;
}
}
private static void printMatrixInCircle(int[][] matrix, int rows, int cols, int start) {
int endX = cols - 1 - start;
int endY = rows - 1 - start;
// 从左到右打印一行
for (int i = start; i <= endX; i++) {
System.out.print(matrix[start][i] + " ");
}
// 从上到下打印一列
if (start < endY) {
for (int i = start + 1; i <= endY; i++) {
System.out.print(matrix[i][endX] + " ");
}
}
// 从右到左打印一行
if (start < endX && start < endY) {
for (int i = endX - 1; i >= start; i--) {
System.out.print(matrix[endY][i] + " ");
}
}
// 从下到上打印一列
if (start < endX && start < endY - 1) {
for (int i = endY - 1; i > start; i--) {
System.out.print(matrix[i][start] + " ");
}
}
}
```
使用该函数可以打印矩阵A:
```java
int[][] A = {{2, 5, 6}, {-1, 8, 4}, {7, 3, 4}};
printMatrixClockwise(A);
```
输出结果为:2 5 6 4 4 3 7 -1 8