数组和矩阵的问题转圈打印数组

package demo2;

import java.util.Scanner;

public class Main {

private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
//1:首先初始化一个矩阵
//2:打印这个矩阵中的值

printMatrix(init(4,4));

}

public static int [][] init(int row,int col){
int [][] matrix = new int[row][col];
for (int i = 0;i<row;i++) {
for (int j = 0;j<col;j++) {
matrix [i][j] = input.nextInt();
}
}
return matrix;
}

public static void printMatrix(int [][] matrix){
int tr = 0;
int tc = 0;
int dr = matrix.length - 1;
int dc = matrix[0].length - 1;
while (tr <= dr && tc <= dc) {
printEdge(matrix,tr++,tc++,dr--,dc--);
}

}

private static void printEdge(int[][] matrix, int tr, int tc, int dr, int dc) {
//1:首先判断这个矩阵是不是只有一行的情况
if (tr == dr) {
for (int i = tc;i <= dc;i++) {
System.out.print(matrix[tr][i] + " ");
}
}
//2:判断这个矩阵是不是只有一列的情况
else if (tc == dc) {
for (int i = tr;i <= dr;i++) {
System.out.print(matrix[i][tc] + " ");
}
}else{//一般的情况
int curc = tc;
int curr = tr;
while (curc != dc) {
System.out.print(matrix[tr][curc]);
curc++;
}

while (curr != dr) {
System.out.print(matrix[curr][dc]);
curr++;
}

while (curc != tr) {
System.out.print(matrix[dr][curc]);
curc--;
}

while (curr != tr) {
System.out.print(matrix[curr][tc]);
curr--;
}

}







}

}

原文地址:https://www.cnblogs.com/airycode/p/5762442.html