打印“魔方阵”,所谓魔方阵是指这样的方阵 ,它的每一行,每一列和对角线之间和均相等。例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求打印出1~n的平方数的自然数的魔方阵。
c版本的答案:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int a[16][16],i,j,n,k;
printf("Please input n(1~15,it must be odd.): ");
scanf("%d",&n);
while(!(n>=1&&n<=15)||n%2==0)
{
printf("The number is invalid.Please insert again:");
scanf("%d",&n);
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
i=1;
for(k=2;k<=n*n;k++)
{
i=i-1;j=j+1;
if(i==0&&j=