蛇形填数 C语言实现
前言
hdoj 蛇形填数 C语言实现
一、题目
对于每组数据,输出一个n行m列的蛇形数组
Sample
input
3 3
output
1 2 3
8 9 4
7 6 5
二、代码实现
1.代码如下
代码如下(示例):
#include<stdio.h>
int main()
{
int n,m,i,x,y;
while(scanf("%d %d",&n,&m)!=EOF)
{
int a[n][m];
for(x=0;x<n;x++)
{
for(y=0;y<m;y++)
{
a[x][y]=0;
}
}
a[0][0]=1;
x=0;
y=0;
i=2;
// printf("%d",a[0][1]);
while(i<=n*m)
{
while(y+1<m&&a[x][y+1]==0)
{
a[x][++y]=i++;
}
while(x+1<n&&a[x+1][y]==0)
{
a[++x][y]=i++;
}
while(y-1>=0&&a[x][y-1]==0)
{
a[x][--y]=i++;
}
while(x-1>=0&&a[x-1][y]==0)
{
a[--x][y]=i++;
}
}
for(x=0;x<n;x++)
{
for(y=0;y<m-1;y++)
{
printf("%d ",a[x][y]);
}
printf("%d\n",a[x][y]);
}
}
}
2.读入数据
随机输入两个数
总结
将数字按顺序依次填充,当下一个数未被填入时(为初始0时)填充。
第一次写博客,欢迎大家批评指正