假设当前该旅馆各个房间的情况如表4-3所示。 当输入M=4,R=0时,该算法的输出是什么? 如果限制该算法最多输出K个可供选择的房间号,则在图4-5的α所指的判断框应改成什么处理?

admin2013-05-11  31

问题 假设当前该旅馆各个房间的情况如表4-3所示。

当输入M=4,R=0时,该算法的输出是什么?
如果限制该算法最多输出K个可供选择的房间号,则在图4-5的α所指的判断框应改成什么处理?

选项

答案I>N OR J=K,其中,I>N也可以写成I=N+1;J=K也可以写成J≥K。

解析 问题1比较简单,“输入M=4,R=0”表示散客人数为4,房间等级任意。对照旅馆各房间的情况表,易得满足条件的房间号有:101和301,算法的输出正是可供选择的房间号,故算法的输出应该为:“101,301”。
   根据题设,每天的住宿费DAYRENT(J)应为散客数M与对应房间(等级为r)的每人每天住宿费RATE(r)的乘积。问题就是r是多少呢?是用户输入的“R”吗?显然可以排除这种情况,因为R可以为0。仔细地分析可得,r应为“RANK(I)”。故应增加“RATE(RANK(I))*M→ DAYRENT(J)”。需要注意的一点是,将变量A赋值V的写法如下:V→A,而不是C语言的习惯:A=V。在流程图中,等号“=”就表示“等于”。
   仔细分析可得,变量I是用来计数旅馆房间的,变量J是用来计数满足条件的房间数的。α所指的判断框成立时输出结果,因此应改成:I>N OR J=K。
转载请注明原文地址:https://jikaoti.com/ti/7rf7FFFM
0

最新回复(0)