文档介绍:奇数阶魔方阵是指由1到n2个自然数构成的nn的方阵,它的每一行,每一列,和对角线各元素之和均相等,3阶的魔方阵如下:816357492n阶魔方阵的构造方法为:1首先把1放在顶行的正中间,然后把后继数按顺序放置在右上斜的对角线上;2当到达顶行时,下一个数放到底行,似乎它在顶行的上面;3当到达最右列时,下一个数放在最左端列,似乎它仅靠在右端列的右方;4当到达的位置已经填好数时,提示:或到达右上角的位置时,下一个数就放在刚填写的位置的正下方。//打印奇数阶魔方阵方阵#include""#include"iostream"usingnamespacestd;intmain(intargc,char*argv[]){ inti,j,s,n; inta[100][100]; cout<<"请输入一个奇数(n>0&&n<1000)n:";loop1: cin>>n; if(n%2==0||n<0||n>=1000) { cout<<"输入错误!请重新输入(n>0&&n<1000)的奇数n:"; gotoloop1; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=0; i=1; j=(n+1)/2; a[1][(n+1)/2]=1; for(s=2;s<=n*n;s++) { if((i-1)>=0&&(j-1)>=0) { if((i-1)>0) { if((j-1)>0) { if(a[i-1][j-1]==0) { a[--i][--j]=s; } else { a[++i][j]=s; } } elseif((j-1)==0) { if(a[i-1][n]==0) { a[--i][n]=s; j=n; } else { a[++i][j]=s; } } } elseif((i-1)==0) { if((j-1)>0) { if(a[n][j-1]==0) { a[n][--j]=s; i=n; } else { a[++i][j]=s; } } elseif((j-1)==0) { if(a[n][n]==0) { a[n][n]=s; i=n; j=n; } else { a[++i][j]=s; } } } } elsecout<<"error!"; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) cout<<a[i][j]<<""; cout<<endl; } return0;}踞刨蹿蒂莎斯瘦开梗赎撵箔擎孕遥剂怔昔料茧榨肾咐介骸址鸣旁惹澳塑挖伊笺酉叔舔淹动展喇桂拨摇来孩鸣尘护柴败