#include<stdio.h>
void main()
{
int a[100][100],n,i,j,k,m;
scanf("%d",&n);
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
a[j][i]=0;
}
i=0;j=n/2;
a[i][j]=1;
for(;;)
if(a[i][j]==n*n)break;
else
{
k=i;m=j;
i=(i-1+n)%n;j=(j+1)%n;
if(a[i][j]!=0)
{
i=(k+1)%n;
j=m;
a[i][j]=a[k][m]+1;
}
else a[i][j]=a[k][m]+1;
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
printf("%4d",a[j][i]);
printf("\n");
}
getch();
}
上面的老兄的程序好象有问题,我改了一下,请那位老兄别见怪。
void main()
{
int a[100][100],n,i,j,k,m;
scanf("%d",&n);
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
a[j][i]=0;
}
i=0;j=n/2;
a[i][j]=1;
for(;;)
if(a[i][j]==n*n)break;
else
{
k=i;m=j;
i=(i-1+n)%n;j=(j+1)%n;
if(a[i][j]!=0)
{
i=(k+1)%n;
j=m;
a[i][j]=a[k][m]+1;
}
else a[i][j]=a[k][m]+1;
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
printf("%4d",a[j][i]);
printf("\n");
}
getch();
}
上面的老兄的程序好象有问题,我改了一下,请那位老兄别见怪。