LinkCode螺旋矩阵JAVA

//请大佬看看有啥错误的地方 谢谢 本人小白一枚 写的不好还请见谅

public class Test2 {
    public static void main(String[] args) {
         int[][] arr={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};
        if (arr.length != 0 && arr[0].length != 0) {//先判断是否大于零
            if (arr.length == arr[0].length) {
                for (int i = 0; i <= arr.length - 1; i++) {    //控制圈数
                    for (int j = i; j < arr[i].length - i - 1; j++) {   //矩阵上方的数
                        System.out.print(arr[i][j] + " ");   
                    }
                    for (int i1 = i; i1 < arr.length - i - 1; i1++) {//矩阵右方的数
                        System.out.print(arr[i1][arr[i].length - i - 1] + " ");
                    }
                    for (int i1 = arr[i].length - i - 1; i1 > i; i1--) {//矩阵下方的数
                        System.out.print(arr[arr.length - i - 1][i1] + " ");
                    }
                    for (int i1 = arr.length - i - 1; i1 > i; i1--) {//矩阵左方的数
                        System.out.print(arr[i1][i] + " ");
                    }
                    if (arr.length % 2 != 0 && i == arr.length - 1) {//当矩阵长宽相等时 输出中心的数
                        System.out.println(arr[arr.length / 2][arr.length / 2]);
                    }
                }
            } else {
                for (int i = 0; i <= arr.length - 2; i++) {//控制圈数
                    for (int j = i; j < arr[i].length - i - 1; j++) {//矩阵上方的数
                        System.out.print(arr[i][j] + " ");  
                    }
                    for (int i1 = i; i1 < arr.length - i - 1; i1++) { //矩阵右方的数
                        System.out.print(arr[i1][arr[i].length - i - 1] + " ");

                    }
                    for (int i1 = arr[i].length - i - 1; i1 > i; i1--) {//矩阵下方的数
                        System.out.print(arr[arr.length - i - 1][i1] + " ");
                    }
                    for (int i1 = arr.length - i - 1; i1 > i; i1--) {//矩阵左方的数
                        System.out.print(arr[i1][i] + " ");
                    }
                }
            }
        }
    }
}

在这里插入图片描述

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值