导航
您当前的位置:首页 > 计算机 > 软件水平
问题:

[问答题] 阅读以下说明和C程序,将应填入 (n) 处的字句写在对应栏内。3、【说明】下面的程序用DoleRob算法生成N阶(N为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从1开始,按如下方法依次插入各自然数,直到N2为止。 a.在第一行的正中插入1。 b.新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置。 c.若最近插入的元素是N的整数倍,则选同列的下一行位置为新位置。 例如,3阶魔方阵如下所示: 8 1 6 3 5 7 4 9 2【C程序】 #include<stdio.h> #include<stdlib.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)||n < 1 || (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(row<1) 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"); } }
答案解析:

相关问题
关于我们 | 用户指南 | 版权声明 | 给我留言 | 联系我们 | 积分商城 | 答案求助 | 网站地图
Copyright © 2024 www.daanwo.com All Rights Reserved