黑马程序员技术交流社区
标题:
一个小小程序帮做下修改..
[打印本页]
作者:
binghaiwang
时间:
2013-9-2 10:04
标题:
一个小小程序帮做下修改..
public class PrintMatrix {
/**
* 以下将等长二维数组中的数字按自然顺序和螺旋样式打印到控制台
*/
public static void main(String[] args) {
int n = 4;
int[][] arr = new int[n][n];
print2Arr(arr,n);
}
//创建打印方法
public static void print2Arr(int[][] arr,int a){
//定义水平和垂直方向各2个角标
int startx = 0,starty = 0,endx = a,endy = a;
int count= 1;
//设定循环条件,水平的x<y,垂直打印的x<y
while(count <= a*a){
for(int i=starty;i<endx;i++)
//填入最上层一行
arr[starty][i]=count++;
starty++;
for(int i=starty;i<endy;i++)
//填入最右边
arr[i][endx-1]=count++;
endx--;
for(int i=endx-1;i>=startx;i--)
//填入最下边
arr[endy-1][i]=count++;
endy--;
for(int i=endy-1;i>=starty;i--)
//填入最左边
arr[i][startx]=count++;
startx++;
}
for(int x=0;x<arr.length;x++){
for(int j=0;j<arr[x].length;j++){
System.out.print(arr[x][j]+"\t");
}
System.out.println("\r");
}
}
}
复制代码
上述小程序是否可以改成随意长度的二维数组都打印出这个效果,我暂时改不出来,或者说我写的这个只能是等长,随机长度不支持?。有能改的或另写的都可以。万分感谢。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2