java实现螺旋数组的输出_螺旋输出一组数组数据的实现

要螺旋输出一组数据,实现的解决方案:采用二维数组的形式来解决

结果如下:

80ac7247cee353bce547199ef4cb0631.png

65f7f95c3f0d9797eefc9514f8865451.png

实现如下:

这里我们定义一个类public class LoopSort{

public static void main(String[] args){

//要螺旋输出的数据的个数

Scanner s=new Scanner(System.in);

System.out.println("请输入螺旋输出的数据的行和列:");

int number=s.nextInt();

int code=s.nextInt();

s.close();

//定义一个存放数据的二维数组

int[][] numbers=new int[number][code];

//定义最小列

int minX=0;

//定义最大列

int maxX=code-1;

//定义最小行

int minY=0;

//定义最大行

int maxY=number-1;

//定义数据自增变量

int count=0;

while(minX<=maxX){

//行不变,为最小行,列从小到大

for(int i=minX;i<=maxX;i++){

numbers[minY][i]=++count;

}

//这样第一行就不会在执行,就让最小行加一

minY++;

//列不变,为最大列,行从小到大

for(int i=minY;i<=maxY;i++){

numbers[i][maxX]=++count;

}

//这之后最右边的列不再执行,就让最大列减一

maxX--;

//行不变,为最大行,列从大到小

for(int i=maxX;i>=minX;i--){

numbers[maxY][i]=++count;

}

//最底层的行不再执行,就让最大行减一

maxY--;

//列不变,为最小列,行从大到小

for(int i=maxY;i>=minY;i--){

numbers[i][minX]=++count;

}

//此时最左边的列不再执行,就让最小列加一

minX++;

}

// 对二维数组进行遍历,循环输出数组中保存的数据

for(int[] i:numbers){

for(int j:i){

String val=j<10 ? "0" : "";

System.out .print(val+j+" ");

}

System.out.println();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值