救命 !!

2024-02-29 14:58

所谓魔方阵是指这样的的方阵:它的每一行、每一列和对角线之和均相等。输入n,要求打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:8163****2此题要求输... 所谓魔方阵是指这样的的方阵:它的每一行、每一列和对角线之和均相等。输入n,要求打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:8 1 63 5 74 9 2 此题要求输入一个数据n, 然后打印出奇数阶魔方阵。 展开
2024-02-29 15:30
#include
#include
#define SIZE 100
main(){
int row,col,n,value;int a[SIZE][SIZE];
printf("请输入要输出魔方阵的阶数(只是奇数阶有效):n=");
scanf("%d",&n);
row=1;
col=(n+1)/2;
value=1;
while(value<=n*n){
a[row][col]=value;
if(value%n!=0){
row--;
col++;
if(row<1)row+=n;
if(col>n)col-=n;
}
else row++;
value++;
}
printf("\n%d 阶魔方阵是:\n\n",n);
for(row=1;row<=n;row++){
for(col=1;col<=n;col++)
printf("%5d",a[row][col]);
printf("\n");
}
getch();
}