java如何创建一个二维数组,从中心填充成螺旋形?获取错误:线程中出现异常。。。1和9
螺旋的运动:左、下、右、上;从中间[4][4]。。。 我编写了代码,但遇到了几个错误,即:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 and 9
代码行13:mx[i][j--] = k;
(以及其他,如28…)。我只是不明白我做错了什么,为什么编译器会在这里看到错误
public class FoLab {
public static void main(String[] args) {
int[][] mx = new int[9][9];
int i, j, k = 1, n = 1, b;
for (i=0; i < 9; i++)
for (j = 0; j < 9; j++) {
i = 4;
j = 4;
if (n % 2 != 0) { //if odd
for (b = 0; b <= n; b++) {
mx[i][j--] = k; //go left
k++;
}
for (b = 0; b <= n; b++) {
mx[i++][j] = k; //go down
k++;
}
n++; //number of steps after "left + down" is increasing by 1, making it even
}
else { //if even
for (b = 0; b <= n; b++) {
mx[i][j++] = k; //go right
k++;
}
for (b = 0; b <= n; b++) {
mx[i--][j] = k; //go up
k++;
}
n++; //number of steps after "right + up" is increasing, making it odd
}
}
for (i = 0; i < 9; i++) {
for (j = 0; j < 9; j++)
System.out.printf(" %02d ", mx[i][j]);
System.out.println("\n");
}
}
}
# 1 楼答案
好的,我解决了这个问题。代码如下:
}