首页 > 其他 > 详细

蛇形填数

时间:2016-12-16 00:49:01      阅读:224      评论:0      收藏:0      [点我收藏+]

# include<stdio.h>
int main()
{
int n,count=1,t,flag=0;
scanf("%d",&n);
int a[n+1][n+1];
int i=0,j=n+1;
int hb=1,zb=n;
int k = (n+1)/2;
while(i!=k&&j!=k)
{
if(flag==0)//有四个状态列不变行递增  行不变列递减  列不变行递减 行不变列递增  故用4个if 再用hb zb控制边界情况

{
i=i+1;j=j-1;
flag=1;
for(i;i<=zb;i++)
{
a[i][j]=count;count++;
//printf("%d %d %d %d\n",i,j,count,a[i][j]);
}
}

else if(flag==1)
{
flag=2;
j=j-1;i=i-1;
for(j;j>=hb;j--)
{
a[i][j]=count;count++;
// printf("%d %d %d %d\n",i,j,count,a[i][j]);
}
}

else if(flag==2)
{
flag=3;
i=i-1;j=j+1;
for(i;i>=hb;i--)
{
a[i][j]=count;count++;
// printf("%d %d %d %d\n",i,j,count,a[i][j]);
}
hb=hb+1;
}

else
{
flag=0;
j=j+1;i=i+1;
zb=zb-1;
for(j;j<=zb;j++)////牢记j退出来时会比边界条件大
{
a[i][j]=count;count++;
// printf("%d %d %d %d\n",i,j,count,a[i][j]);
}
}

}

for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}

蛇形填数

原文:http://www.cnblogs.com/wshyj/p/6185177.html

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