标签:
/* 请输入在测试的数据的组数: 3 a[0][2]=1 a[1][2]=2 a[2][2]=3 a[2][1]=4 a[2][0]=5 a[1][0]=6 a[0][0]=7 a[0][1]=8 a[1][1]=9 7, 8, 1, 6, 9, 2, 5, 4, 3, */ #include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... int n,x,y,total,a[255][255]; printf("请输入在测试的数据的组数:\n"); scanf("%d",&n); total=a[x=0][y=n-1]=1; printf("a[%d][%d]=%d\n",x,y,a[x][y]); while (total<n*n) { //向下 while (x+1<n&&!a[x+1][y]) { a[++x][y]=++total; printf("a[%d][%d]=%d\n",x,y,a[x][y]); } //向左 while (y-1>=0&&!a[x][y-1]) { a[x][--y]=++total; printf("a[%d][%d]=%d\n",x,y,a[x][y]); } //向上 while (x-1>=0&&!a[x-1][y]) { a[--x][y]=++total; printf("a[%d][%d]=%d\n",x,y,a[x][y]); } //向右 while (y+1<n&&!a[x][y+1]) { a[x][++y]=++total; printf("a[%d][%d]=%d\n",x,y,a[x][y]); } } for ( x=0; x<n; ++x) { for (y=0; y<n;++y) { printf("%3d,",a[x][y]); } printf("\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/yang-guang-girl/p/4234514.html