public class Test {?public static void main(String[] args) {? ?? int[][] arr = new int[3][3];? ?? int a = 2;// 第三行的行下標 ? ?? int b =3/2;//第二列的列下標?? for (int i = 1; i <= 9; i++) {// 給數組賦值/*? 這里有個疑問,i-max=9,那么a++應該等于11,那么當i=9的時候,首先 arr[a++][b++]好像就不成立了 ,因為把i=9帶入下面的判斷,那么a應該等于9,而a++是<=3的,。那么是什么問題? 還是這個a++代表的不是下標,而是這一行的某個值? ??? ? */?? arr[a++][b++] =? i;? ? ? ? if (i % 3 == 0) {? ? ? ? ? ? a = a - 2;? ? ? ? ? ? b = b - 1;? ? ? ? } else {? ? ? ? ?? a = a % 3;? ? ? ? ? b = b % 3;? ? ? ?? }??}? ?? System.out.println("輸出九宮格:");? ?? for (int i = 0; i < 3; i++) {? ? ? ? for (int j = 0; j < 3; j++) {? ? ? ? ? ? System.out.print(arr[i][j] + " ");? ? }? ? ? ? System.out.println("\n");??}??}}
3 回答
已采納

qq_凱_29
TA貢獻7條經驗 獲得超1個贊
第一次執行arr[a++][b++] 相當于? arr[2][1]=1這時a=3,b=2
第二次執行arr[a++][b++] 相當于? arr[0][2]=2這時a=1,b=3
第三次執行arr[a++][b++] 相當于? arr[1][0]=3這時a=2,b=1
因為i%3=0所以a=0,b=0
第四次執行arr[a++][b++] 相當于? arr[0][0]=4這時a=1,b=1
第五次執行arr[a++][b++] 相當于? arr[1][1]=5這時a=2,b=2
第六次執行arr[a++][b++] 相當于? arr[2][2]=6這時a=3,b=3
因為i%3=0所以a=1,b=2
第七次執行arr[a++][b++] 相當于? arr[1][2]=7這時a=2,b=3
第八次執行arr[a++][b++] 相當于? arr[2][0]=8這時a=3,b=1
第九次執行arr[a++][b++] 相當于? arr[0][1]=9這時a=1,b=2
添加回答
舉報
0/150
提交
取消