运行截图:
1 #include <stdlib.h> 2 #include <stdio.h> 3 #define N 10 4 5 void main() 6 { 7 int a[N][N] = {0}; 8 9 int data = 0; 10 11 //(N+1)/2表示有多少圈 12 for (int i = 0, j = 0, k = 0; k < (N + 1) / 2; k++) 13 { 14 while (j < N - k)//控制圈数 15 { 16 a[i][j] = data++;//赋值 17 j++;//往右移动 18 } 19 j--;//退回 20 i++;//转向 21 while (i < N - k) 22 { 23 a[i][j] = data++; 24 i++; 25 } 26 i--;//退回 27 j--;//转向 28 while (j >= k) 29 { 30 a[i][j] = data++; 31 j--; 32 } 33 j++;//退回 34 i--;//转向 35 while (i > k) 36 { 37 a[i][j] = data++; 38 i--; 39 } 40 i++;//退回 41 j++;//转向 42 } 43 for (int i = 0; i < N; i++) 44 { 45 for (int j = 0; j < N; j++) 46 { 47 printf("%4d", a[i][j]); 48 } 49 printf(" "); 50 } 51 printf("-------------------------------------- "); 52 system("pause"); 53 }