码迷,mamicode.com
首页 > 其他好文 > 详细

蛇形填数

时间:2015-01-19 20:29:41      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

/*
请输入在测试的数据的组数:
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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!