首页 > 其他 > 详细

C 蛇形填图

时间:2014-02-15 17:25:30      阅读:318      评论:0      收藏:0      [点我收藏+]

描述

在n*n方陈里填入1,2,...,n*n,要求填成蛇形。

例如n=4时方陈为:

10 11 12 1

9 16 13 2

8 15 14 3

7 6 5 4

输入 直接输入方陈的维数,即n的值。(n<=100) 输出

输出结果是蛇形方陈。

样例输入

3

样例输出

7 8 1

6 9 2

5 4 3

#include <stdio.h>

#include<string.h>

#define maxn 102

int a[maxn][maxn];

int main()

{  

int n,x,y,tot=0;  

scanf("%d",&n);  

memset(a,0,sizeof(a));  

tot=a[x=0][y=n-1]=1;  

while(tot<n*n)  

{  

while(x+1<n&&!a[x+1][y])a[++x][y]=++tot;  

while(y-1>=0&&!a[x][y-1])a[x][--y]=++tot;  

while(x-1>=0&&!a[x-1][y])a[--x][y]=++tot;  

while(y+1<n &&!a[x][y+1])a[x][++y]=++tot;  

} for(x=0;x<n;x++)

{    

for(y=0;y<n;y++)    

{        

if(y==0)            

printf("%d",a[x][y]);        

else            

printf(" %d",a[x][y]);    

}    

printf("\n");

}

return 0;

}

      

C 蛇形填图

原文:http://www.cnblogs.com/HorseKing/p/3550596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!