#include
int main()
{
int N,n,i,j,num=1;
int a[20][20]={0};
printf(“输入一个数:\n”);
scanf("%d",&N);
if(N>0)
{
if(N%2!=0)//判断奇偶
a[N/2][N/2]=N*N;
for(n=0;n<=N/2;n++)
{
for(j=n;j<=N-n-1;j++)//向右
a[n][j]=num++;
for(i=n+1;i<N-n-1;i++)//向下
a[i][N-n-1]=num++;
for(j=N-n-1;j>n;j--)//向左
a[N-n-1][j]=num++;
for(i=N-n-1;i>n;i--)//向上
a[i][n]=num++;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%5d",a[i][j]);
puts("\n");
}
}
else(N<0);
{
int S=-N;
if(S%2!=0)//判断奇偶
a[S/2][S/2]=S*S;
for(n=0;n<S/2;n++)
{
for(i=n;i<=S-n-1;i++)//向下
a[i][n]=num++;
for(j=n+1;j<=S-n-1;j++)//向右
a[S-n-1][j]=num++;
for(i=S-n-2;i>=n;i--)//向上
a[i][S-n-1]=num++;
for(j=S-n-2;j>n;j--)//向左
a[n][j]=num++;
}
for(i=0;i<S;i++)
{
for(j=0;j<S;j++)
printf("%5d",a[i][j]);
puts("\n");
}
}
}