您的位置:首页 > 其它

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

2014-10-24 22:03 330 查看
要螺旋输出一组数据,实现的解决方案:采用二维数组的形式来解决
结果如下:







实现如下:

这里我们定义一个类

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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐