1、把1放到顶行的正中间,然后把后继数放置在右上斜的对角线上;
2、当到达顶行时,下一个数放到底行,当到达最右端时,下一个数放到最左端;
3、当到达的位置有数,或者到达右上角时,下一个数放在前一个数的正下方。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,i,j;
int array[100][100]={0};
cout<<"请输入奇数阶数:";
cin>>n;
int row=0,col=(n-1)/2;
array[row][col]=1;
for(i=2;i<=n*n;i++)
{
if((row-1)<0 && (col+1)<n)
{
if(array[n-1][col+1]==0)
{
row=n-1;
col=col+1;
}
else
{
row=row+1;
}
}
else if((row-1)>=0 && (col+1)&g