【正确答案】#define M 9
#define N 9
main()
{ int n,i,j,k,s;
int A[M][N]; /*定义一个存储魔方阵的矩阵*/
clrscr();
printf("input n\n");
scanf("/%d",&n); /*输入魔方阵的阶数n*/
printf("\n");
i=n/%2; /*将1填入中间一行的最后一列的位置*/
j=n-1;
A[i][j]=1;
for(k=2;k<=(n*n);k++) /*依次填入2到n2的其他自然数*/
{ if(k/%n==1)
j--;
else
{ i=(i+1)/%n;
j=(j+1)/%n;
}
A[i][j]=k;
}
printf("magic matrix\n");
printf("n=/%d\n",n); /*输出魔方阵的阶数n*/
for(i=0;i<n;i++) /*输出魔方阵*/
{ for(j=0;j<n;j++)
printf("/%5d",A[i][J]);
printf("\n");
}
printf("\n");
s=(n*(1+n*n))/2; /*魔方阵中行或列的和*/
printf("snm of line,column is:/%d\n",s); /*输出魔方阵中行或列的和*/
}
【答案解析】