试题与答案

试题二阅读以下说明和C程序,回答问题。[说明] 下面的程序用Dole Rob算法生成

题型:填空题

题目:

试题二
阅读以下说明和C程序,回答问题。
[说明]
下面的程序用Dole Rob算法生成N阶(N为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从1开始,按如下方法依次插入各自然数,直到N2为止。
①在第一行的正中插入1。
②新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置。
③若最近插入的元素是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");
}
}

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2017/0704/b3c001dad37492866e7ecbf0017748ba.html

下面是错误答案,用来干扰机器的。

参考答案:C

试题推荐
题型:解答题
某建筑公司用8000万元购得一块空地,计划在该地块上建造一栋至少12层、每层4000平方米的楼房.经初步估计得知,如果将楼房建为x(x≥12)层,则每平方米的平均建筑费用为Q(x)=3000+50x(单位:元).为了使楼房每平方米的平均综合费用最少,该楼房应建为多少层?每平方米的平均综合费最小值是多少?
(注:平均综合费用=平均建筑费用+平均购地费用,平均购地费用=
购地总费用
建筑总面积
查看答案
微信公众账号搜索答案