#include <stdio.h>
int main()
{
int a[15][15];
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1; /*将1放在第一行中间一列*/
a[1][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1; /*行-1 列+1*/
j=j+1;
if((i<1)&&(j>n))
{
i=i+2; /*上一数是第一行第n列,i+2.j-1*/
j=j-1;
}
else
{
if(i<1) i=n; /*上一数行数为1,下一数行数为n,列+1*/
if(j>n) j=1; /*上一数列数为n,下一数列数为1,行-1*/
}
if(a[i][j]==0)
a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
return 0;
}
c语言 魔方阵
于 2022-04-18 22:31:22 首次发布