铁甲依然在ltag0110rtag.blog.chinaunix.net
剑子与剑痴
全部博文(12)
2011年(3)
2010年(9)
大鬼不动
ghostste
zhang45x
pignewmo
rember
This__me
yanyun88
帝豪2187
z_d_r281
liuhuaha
分类: C/C++
2010-11-12 11:17:03
//奇数阶魔方阵的排列#include<stdio.h>#include<stdlib.h>void main(){ int **a; int i,j,n,k=1,_i,_j; do{ printf("输入一个奇数: "); scanf("%d",&n); fflush(stdin); }while(n%2==0||n<3); a=(int **)malloc(n*sizeof(int *));//建动态数组 if(!a) exit(-1); for(i=0;i<n;i++) { a[i]=(int *)malloc(n*sizeof(int )); if(!a[i]) exit(-1); } for(i=0;i<n;i++) //动态数组初始为0 for(j=0;j<n;j++) a[i][j]=0; i=0; //组建魔方阵 j=n/2; a[i][j]=k++; for(;;) { _i=(i-1+n)%n; _j=(j+1)%n; if(a[_i][_j]==0) a[i=_i][j=_j]=k++; else { _i=(i+1)%n; _j=j; if(a[_i][_j]==0) a[i=_i][j=_j]=k++; else break; } } for(i=0;i<n;i++) //输出魔方阵 { printf("\n"); for(j=0;j<n;j++) printf("%8d",a[i][j]); } getchar(); }
上一篇:【概念】幻方(纵横图)——解法
下一篇:双偶数阶魔方阵_动态数组实现
chinaunix网友2010-11-12 17:16:05
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com
登录 注册