求魔方阵的算法
提示: 作者被禁止或删除 内容自动屏蔽
#include<stdio.h> #include<stdlib.h> int main() { int i,j,i1,j1,x,n,a[100][100]; printf("请输入一个奇数:"); scanf("%d",&n); for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=0; if(n%2==0) { printf("输入错误!"); return 0; } i=1; j=(n+1)/2; x=1; while(x<=n*n) { a[i][j]=x; x=x+1; i1=i; j1=j; i=i-1; j=j-1; if(i==0) i=n; if(j==0) j=n; if(a[i][j]!=0) { i=i1+1; j=j1; } } //输出魔方 for(i=1;i<=n;i++) { putchar('\n'); for(j=1;j<=n;j++) printf("%4d",a[i][j]); } getchar(); return 1; }我写了一个奇数的魔方,偶数的比较麻烦,你可以自己类似的试试。希望对你有帮助。