这次突然想画个五阶幻方,于是就随手画了个,嘿嘿
#include<stdio.h>
#include<string.h>
int main(){
int a[5][5];
memset(a,0,sizeof(a));
int q=25;
int i=0,j=2,num=1;
while(q--)
{
//赋值 移位 检测 矫正
a[i][j]=num++;
i--;j++;
if(i<0) i+=5;
else if(i>4) i-=5;
if(j<0) j+=5;
else if(j>4) j-=5;
if(a[i][j]!=0)
{
i+=2;j--;
if(i<0) i+=5;
else if(i>4) i-=5;
if(j<0) j+=5;
else if(j>4) j-=5;
}
}
for(int w=0;w<5;w++)
{
printf("+----+----+----+----+----+\n|");
for(int e=0;e<5;e++)
printf("%3d |",a[w][e]);
printf("\n");
}
printf("+----+----+----+----+----+\n");
getchar();
return 0;
}