黑马程序员技术交流社区

标题: 一个小小程序帮做下修改.. [打印本页]

作者: binghaiwang    时间: 2013-9-2 10:04
标题: 一个小小程序帮做下修改..
  1. public class PrintMatrix {

  2.         /**
  3.          * 以下将等长二维数组中的数字按自然顺序和螺旋样式打印到控制台                     
  4.          */
  5.         public static void main(String[] args) {
  6.                 int n = 4;
  7.                 int[][] arr = new int[n][n];
  8.                 print2Arr(arr,n);
  9.         }
  10.         //创建打印方法
  11.         public static void print2Arr(int[][] arr,int a){
  12.                 //定义水平和垂直方向各2个角标
  13.                 int startx = 0,starty = 0,endx = a,endy = a;
  14.                 int count= 1;
  15.                 //设定循环条件,水平的x<y,垂直打印的x<y
  16.                 while(count <= a*a){
  17.                        
  18.                         for(int i=starty;i<endx;i++)       
  19.                                 //填入最上层一行
  20.                                 arr[starty][i]=count++;
  21.                         starty++;
  22.                         for(int i=starty;i<endy;i++)                       
  23.                                 //填入最右边
  24.                                 arr[i][endx-1]=count++;
  25.                         endx--;
  26.                         for(int i=endx-1;i>=startx;i--)
  27.                                 //填入最下边
  28.                                 arr[endy-1][i]=count++;
  29.                         endy--;
  30.                         for(int i=endy-1;i>=starty;i--)
  31.                                 //填入最左边
  32.                                 arr[i][startx]=count++;
  33.                         startx++;
  34.                 }
  35.                
  36.                 for(int x=0;x<arr.length;x++){
  37.                         for(int j=0;j<arr[x].length;j++){
  38.                                 System.out.print(arr[x][j]+"\t");
  39.                         }
  40.                         System.out.println("\r");
  41.                 }
  42.         }       
  43. }
复制代码
上述小程序是否可以改成随意长度的二维数组都打印出这个效果,我暂时改不出来,或者说我写的这个只能是等长,随机长度不支持?。有能改的或另写的都可以。万分感谢。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2