
目标:
将一个二维数组按顺时针输出。
(推荐教程:java入门)
代码实现如下:
public class 顺时针输出二维矩阵 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][]arr={
{1,2,2,3},
{4,5,4,6},
{7,8,6,9},
{1,2,3,4}
};
int k=0;
for(int i = 0; i < arr.length;i++){
for(int j = 0;j < arr[0].length;j++){
k++;
System.out.print(arr[i][j]+" ");
if(k % 4 == 0){
System.out.println("");
}
}
}
System.out.println("");
System.out.println(arr[0].length);//列数
System.out.println(arr.length);//行数
print(arr);
}
static void print (int[][]arr){
int leftUpRow = 0;//最左行
int leftUpCol = 0;//最左列
int rightDownRow = arr.length-1;//最右列
int rightDownCol = arr[0].length-1;//最右列
while(leftUpRow <= rightDownRow && leftUpCol <= rightDownCol){
int row = leftUpRow, col = leftUpCol;
//矩阵的第一行,此时行不变,列++
while(col <= rightDownCol){
System.out.print(arr[row][col++]+" ");
}
//矩阵右边第一列 此时行++,列不变
//将 col,row 恢复
col = rightDownCol;
row++;
while(row <= rightDownRow){
System.out.print(arr[row++][col]+" ");
}
//矩阵的最下面一行 此时 行不变 列--
//还需要恢复 col row 的值
row = rightDownRow;
col--;
while(col >= leftUpCol){
System.out.print(arr[row][col--]+" ");
}
//矩阵最左边一列,此时行--,列不变
//继续恢复 col row的值
col = leftUpCol;
row--;
while(row > leftUpRow){
System.out.print(arr[row--][col]+" ");
}
leftUpRow++;
leftUpCol++;
rightDownRow--;
rightDownCol--;
}
}
}输出结果:
立即学习“Java免费学习笔记(深入)”;
1 2 2 3 4 5 4 6 7 8 6 9 1 2 3 4 1 2 2 3 6 9 4 3 2 1 7 4 5 4 6 8
相关视频教程推荐:java视频
以上就是使用java将一个二维数组顺时针输出的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号