问题

阅读以下说明和C程序,回答问题。

[说明]

下面的程序用Dole Rob算法生成N阶(N为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从1开始,按如下方法依次插入各自然数,直到N2为止。

①在第一行的正中插入1。

②新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置。

③若最近插入的元素是N的整数倍,则选同列的下一行位置为新位置。

例如,3阶魔方阵如下所示:

8 1 6

3 5 7

4 9 2

[C程序]

includestdio.h>

includestdlib.h>

define SIZE 50

main( )

{

int row, col, n, value;

int a[SIZE+1][SIZE+1]; /*不使用下标为0的元素*/

printf("请输入要输出魔方阵的阶数n(奇数, %d):n=", SIZE);

scanf("%d", &n);

if(!(n%2) || n1 || (1) ){

printf("输入数据有误!\n");

exit(0);

}

row=1; col=(n+1)/2; value=1;

while(value= (2) ) {

a[row][col]=value;

/*计算下一位置*/

if(value%n!=0){

row--; (3) ;

if(row1)row=n;

if(col>n) (4) ;

}

else row++;

value= (5) ;

}

printf("\n%d阶魔方阵如下所示:\n\n", n);

for(row=1; row=n; row++){

for(col=1; col=n; col++)

printf("%5d", a[row][col]);

printf("\n");

}

}

参考答案
您可能感兴趣的试题
  • 操作系统功能不包括__。A.提供用户操作界面B.管理系统资源C.提供应用程序接口D.提供HTML
  • 在计算机系统的日常维护工作中,应当注意硬盘工作时不能__。另外,需要注意防范病毒,但是,ROM 是不会被感染病毒的。A.大声喧哗B.有强烈震动C.装入程序D.有日光照射
  • 在面向对象程序设计语言中,__是利用可重用成分构造软件系统的最有效的特性,它不仅支持系统的可重用性,而且还有利于提高系统的可扩充性;消息传递可以实现发送一个通用的消息而调用不同的方法;A.封装B.消息
  • 下面各程序段中,()能在一行中输出五个&39;*&39;A.I:=0;repeatwrite(&39;*&39;);I:=I+1until I=5B.I:=0;repleatwrite(&39;*&3
  • 在Windows操作系统中,“回收站”可以恢复()上使用键删除的文件或文件夹。A.软盘B.硬盘C.U盘D.软盘和硬盘
  • 在Word中,当对文档中的某段文字进行移动时,应首先________。A.把光标移至该段任意位置B.把光标移至该段结尾C.把该段移至该段开头D.选中该段