打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行,每一列和对角和均相等。例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求打印出由1到n平方的自然数构成的魔方阵。
我在baidu上找了魔方阵的一些资料,里面也说了怎么去做,可自己的能力,还是有限,不能编写代码。我在网上找了个代码,经过调试,可以正常运行。这个东西,自己再慢慢的研究。代码如下:
#include<stdio.h> #define N 20
int main(int argc, int *argv[]) { int a[N][N]; int n,i,j,r; scanf("%d",&n); for(i=0;i<N;i++) { for(j=0;j<N;j++) { a[i][j]=0; } } i=0; j=n/2; a[i][j]=1; for (r=2;r<=n*n;r++) { if (a[(i+n-1)%n][(j+1)%n]==0) { i=(i+n-1)%n;j=(j+1)%n; a[i][j]=r; } else { i=(i+1)%n; a[i][j]=r; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%4d",a[i][j]); } printf("\n"); } system("pause"); return 0; }
|
阅读(1420) | 评论(0) | 转发(0) |