C语言编程2、将1
2、 将1-9 9个数字填入下表,使每横行、每竖行和每条对角线上的数字之和相等。(要求同上题)
main() { int array[16,16],i,j,k,n; /*初始化*/ while (1) {printf(“请输入n.(00)&&(n<16)&&(n%2!=0)) {printf(“矩阵阶数是%d\n”,n); break; } } for(i=1;i<=n;i++) for(j=1;j<=n;j++) array[i,j]=0; /*建立矩阵*/ j=(n/2)+1; array[1,j]=1; for(k=2;k<=n*n;k++) {i=i-1; j=j+1; if((i<1)&&(j>n)) {i=i+2; j=j-1; } else {if(i<1) i=n; if(j>n) j=1; } if(array[i,j]==0) array[i,j]=k; else {i=i+2; j=j-1; array[i,j]=k; } } /*输出n阶魔方矩阵*/ for(i=1;i<=n;i++) for(j=1;j<=n;j++) printf(“%5d”,array[i,j]); printf(“\n”); }