标签:
3 3 1 2 3 4 5 6 7 8 9
1 4 7 8 9 6 3 2 5
3 2 1 2 3 4 5 6
1 3 5 6 4 2
锦囊1
循环,标记。
锦囊2
使用多次循环来处理,也可以对取过的数标记来简化循环的判断。
测试代码
1 #include<stdio.h> 2 3 int main() 4 { 5 int m, n, tot = -1, i, j, x = -1, y = 0; 6 int a[200][200]; 7 8 scanf("%d%d", &m, &n); 9 10 for (i = 0; i < m; i++) 11 { 12 for (j = 0; j < n; j++) 13 { 14 scanf("%d", &a[i][j]); 15 } 16 } 17 18 while (tot < m * n) 19 { 20 while (x + 1 < m && a[x + 1][y] != -1) 21 { 22 printf("%d ", a[++x][y]); 23 a[x][y] = -1; 24 tot++; 25 } 26 while (y + 1 < n && a[x][y + 1] != -1) 27 { 28 printf("%d ", a[x][++y]); 29 a[x][y] = -1; 30 tot++; 31 } 32 while (x - 1 >= 0 && a[x - 1][y] != -1) 33 { 34 printf("%d ", a[--x][y]); 35 a[x][y] = -1; 36 tot++; 37 } 38 while (y - 1 >= 0 && a[x][y - 1] != -1) 39 { 40 printf("%d ", a[x][--y]); 41 a[x][y] = -1; 42 tot++; 43 } 44 } 45 return 0; 46 }
标签:
原文地址:http://www.cnblogs.com/maxin/p/5514416.html