请哪位大侠看看我这下面代码的问题呀老是显示 java.lang.ArrayIndexOutOfBoundsException。我想实现
1   2   3   4 
12  13  14  5
11  16  15  6
10  9   8   7    请大侠们帮帮菜鸟。谢谢public static void main(String[] args) {
int n=4,i,j, k=0,m=0;
int mat[][]=new int[n][n];
for(i=m;i<=n/2-1;i++){
    int a=0;
for(j=m;j<=n-m-1;j++){
mat[i][j]=k;
k++;
}
for(i=m+1;i<=n-m-1;i++){
         mat[i][j]=k;
         k++;
        }
       
for(j=n-m-1;j>=m;j--){
         mat[i][j]=k;
         k++;
        }
        for(i=n-m-1;i>=m+1;i--){
         mat[i][j]=k;
         k++;
        }
m++;
a+=2; }

解决方案 »

  1.   

    你写的有点看不明白,错误是数组越界,找到在那了,自己查下    public static void main(String[] args) {
            int n = 4, i, j, k = 0, m = 0;
            int mat[][] = new int[n][n];
            for (i = m; i <= n / 2 - 1; i++) {
                int a = 0;
                for (j = m; j <= n - m - 1; j++) {
                    mat[i][j] = k;
                    k++;
                }
                for (i = m + 1; i <= n - m - 1; i++) {
                System.out.println("i="+i+",k="+k+",j="+j);//////////////
                    mat[i][j] = k;
                    k++;
                }            for (j = n - m - 1; j >= m; j--) {
                    mat[i][j] = k;
                    k++;
                }
                for (i = n - m - 1; i >= m + 1; i--) {
                    mat[i][j] = k;
                    k++;
                }
                m++;
                a += 2;
            }
        }
    /**
    run:
    i=1,k=4,j=4
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
            at test.Main.main(Main.java:27)
    Java Result: 1
    */
      

  2.   

    螺旋方阵呀
    呵呵,在JavaSE区的帖子一个数组问题里就是说的螺旋方阵