输出蜗牛数字

来源:百度知道 编辑:UC知道 时间:2024/06/13 13:11:42
用C语言输出如下蜗牛式数字组合

5 4 3
6 1 2
7 8 9
我要的不是传统的螺旋方阵数列输出,我要的是从中间位置开始旋转的。请看好题再回答。谢谢!

#define N 7

void snail(int a[N][N])
{
int i,j,k,n,flag,m;
i=N/2;j=N/2;
flag=1;
n=1;k=1;

while(n<=N*N)
{
if(flag==1)
{
for(m=j+k;j<m;j++)
{
a[i][j]=n;
n++;
}
flag = 2;
}
else if(flag==2)
{
for(m=i-k;i>m;i--)
{
a[i][j]=n;
n++;
}
k++;

flag = 3;
}
else if(flag==3)
{
for(m=j-k;j>m;j--)
{
a[i][j]=n;
n++;
}
flag = 4;
}
else
{
for(m=i+k;i<m;i++)
{
a[i][j]=n;
n++;
}
k++;
flag = 1;
}
}
}
void main()
{
int a[N][N]={0};
snail(a);
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n");
}