#include <stdio.h>
int main()
{
int a[17][17] = { 0 };//具体数组大小可更改
int n=0,p=0;
printf("请输入小于17的正奇数:");
scanf("%d", &n);
a[0][n / 2] = 1;//初始化第一个位置
int i = 0, j = n / 2;
for (p = 2; p <=n*n; p++)
{
//对下一个位置进行判断
int new_i = i, new_j = j;
if (new_i - 1 < 0)
{
new_i = n-1;
}
else
{
new_i=new_i - 1;
}
if (new_j + 1 > n-1)
{
new_j= 0;
}
else
{
new_j=new_j + 1;
}
if (a[new_i][new_j] == 0)
{
i = new_i;
j = new_j;
a[i][j] = p;
}
else
{
i+=1;
a[i][j] = p;
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
printf("%0.3d ", a[i][j]);
printf("\n");
}
return 0;
}
注: