请哪位大侠看看我这下面代码的问题呀老是显示 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 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; }
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
*/
呵呵,在JavaSE区的帖子一个数组问题里就是说的螺旋方阵