这个数组比较绕 多看几遍吧 希望能帮到你
- int size = 4;
- int arr[][] = new int[size][size];
- int i, j, k = 0, n, m;
- n = size;
- m = (n + 1) / 2;
- for (i = 0; i < n; i++)
- {
- // 顶边,从左到右,行不变列变
- for (j = i; j <= n - i - 1; j++)
- arr[i][j] = ++k;// 输出1、2、3、4、13、14
-
- // 右边,从上到下,行变列不变
- for (j = i + 1; j <= n - i - 1; j++)
- arr[j][n - i - 1] = ++k; // 输出5、6、7、15
-
- // 底边,从右到左,行不变列变
- for (j = n - i - 2; j >= i; j--)
- arr[n - i - 1][j] = ++k; // 输出8、9、10、16
-
- // 左边,从下到上,行变列不变
- for (j = n - i - 2; j >= i + 1; j--)
- arr[j][i] = ++k; // 输出11、12
- }
- for (int x=0;x<arr.length ; x++)
- {
- for (int y=0;y<arr[x].length ;y++ )
- {
- System.out.print(arr[x][y]+"\t");
- }
- System.out.println();
- }
复制代码
|