魔方阵是指元素为自然数1,2,…N2的N×N,每个元素值都不相等,每行、每列以及主、副对角线上各N个元素之和都相等。如3×3魔方阵: 8 1 6 3 5 7 4 9 2 奇数阶魔方阵的生成方法如下: (1) 第一个位置在第一行正中; (2) 新位置应当处于最近一个插入位置右上方,但如右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置,如超出右边界则新位置取应选行的最左一个位置; (3) 若最近一个插入元素为N的整倍数,则选下面一行同列上的位置为新位置。 #include <stdio.h> #define MAXSIZE 15 int magic[MAXSIZE][MAXSIZE]; int cur_i=0,cur_j=0; main() {int count,size=0,i,j; while((size%2)==0) { printf("\nenter ODD number:"); scanf("%d",&size); } cur_j=(size-1)/2; for(count=1;count<=size*size;count++) { magic[cur_i][cur_j]=count; if((count%size)==0) { cur_i+=1; continue; } cur_i=cur_i-1; cur_j=cur_j+1; if(cur_i<0) cur_i+=size; else if(cur_j==size) cur_j-=size; } for(i=0;i<size;i++) { printf("\n"); for(j=0;j<size;j++) printf("%5d",magic[i][j]); } } 此程序参见《中国计算机软件专业技术资格和水平考试统编辅导教材》(程序员级、高级程序员级)《程序设计第二版》张福炎主编,清华大学出版社,1996年5月第二版,P96 |
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |