
#include<stdio.h>
main()
{
int a[19][19]={0},n,row=0,colun;
while(1)
{
printf("enter n(3~19):");
scanf("%d",&n);
if(n>=3&&n%2!=0&&n<=19)
break;
}
colun=n/2;
a[row][colun]=1;
for(int i=2;i<=n*n;i++)
{
int row1,colun1;
row1=--row;colun1=++colun;
if(row1==-1) row1=n-1;
if(colun1==n) colun1=0;
if(a[row1][colun1]==0)
{row=row1;colun=colun1;}
else row++;
a[row][colun]=i;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
图中的4应该在3下面,咋跑到3的左边了,求解!!!
