发布网友 发布时间:2023-05-28 23:05
共3个回答
热心网友 时间:2024-11-26 15:42
#include<stdio.h>
void main()
{
int i,j,k,m,n;
int a[20][20];
printf("please input the m:");//输入魔方阵阶数
scanf("%d",&m);
for(n=3;n<=m;n++)
{
if(n%2!=0)
{
printf("%4d阶魔方阵如下:\n",n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
j=n/2;
a[0][j]=1;
for(k=2;k<=n*n;k++)
{
i--;
j++;
if(i<0)//行出界
i=n-1;
else if(j>n-1)//列出界
j=0;
if(a[i][j]==0)
a[i][j]=k;
else
{
i=(i+2)%n;
j=(j-1+n)%n;
a[i][j]=k;
}
}
printf("\n");
for(i=0;i<n;i++) //打印魔方阵
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n\n");
}
}
}
}
热心网友 时间:2024-11-26 15:43
这是典型的阶数为3的魔方阵,也叫幻方阵,到百度百科中搜 魔方阵 就能找到C语言程序,奇数阶还是很好做的。热心网友 时间:2024-11-26 15:43
不就是3阶幻方吗,直接找幻方的程序就可