一个好玩的c语言设计测试(鄙人用了一周搞定)(会数组和循环的就可以)
如何输出转圈数 如1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
大家都说说自己的想法 挺有意思的一个题
可能是我太笨了 反正我没有选判定方向...那个方法
#include <stdio.h> #include <math.h> int main(void) { char format[] = "%xd "; int snake[500][500], width, i, j, count = 0, x = 0, y = 0; scanf("%d", &width); format[1] = (int)log10(width * width) + 1 + '0'; snake[width/2][width/2] = width * width; for (i = width - 1; i > 0; y -= i - 1, ++x, i -= 2) { for (j = 0; j < i; ++j) snake[y][x+j] = ++count; for (x += i, j = 0; j < i; ++j) snake[y+j][x] = ++count; for (y += i, j = 0; j < i; ++j) snake[y][x-j] = ++count; for (x -= i, j = 0; j < i; ++j) snake[y-j][x] = ++count; } for (i = 0; i < width; ++i) { for (j = 0; j < width; ++j) printf(format, snake[i][j]); putchar('\n'); } return 0; }