主题:求助QBASIC一道题目
如意逍遥扇
[专家分:0] 发布于 2006-06-13 20:05:00
一张试卷由30个问题组成,答对一题+6分,答错一题-4分,有一位同学每道题都答了,只得了0分,要计算该同学答错答对各几题,请编写出相应的程序。
(由于我只学过LET、SWAP,FOR-NEXT、WHILE-WEND、PRINT、IF-THEN、INPUT、READ-DATA、REATORE、一维数组)
回复列表 (共18个回复)
11 楼
JRX [专家分:180] 发布于 2006-06-17 10:35:00
对老大徒伤悲果然是高手啊~
12 楼
falkner [专家分:90] 发布于 2006-06-17 13:18:00
CLS
PRINT "Right", "Wrong"
FOR i = 1 TO 30
FOR j = 1 TO 30
IF i * 6 + j * (-4) = 0 AND i + j = 30 THEN PRINT i, j
NEXT j, i
13 楼
moz [专家分:37620] 发布于 2006-06-17 13:20:00
实际上,我也觉得那个循环不应该次数太多,把没有用的都过滤掉才是好程序!
注意题目里隐含了以下条件:
1. 总共30道题,非对即错
2. 总分为零,也就是对错得分相同
3. 一道题对错得分的比例是6:4
根据小学时候学过的比例应用题方法
print "Dui:";30*(4/(4+6)),"Cuo:";30*(6/(4+6))
14 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-17 14:40:00
支持13楼的思路!
在cpu和内存占用上都是最优秀的
15 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-17 14:42:00
这种题目,有时候是无解的(也就是说,解为分数)。以上所有程序都没有考虑。
下面我借用13楼的成果来实现这个:
private sub command1_click()
n=30*(6/(4+6))
if n=int(n) then
print "答对:";30-n;"题; 答错:";n;"题。"
else
print "此题无解。"
endif
end sub
当然,具体到30道题,-4:6得分值,是有解的,显得有点画蛇添足了 [em1][em1][em1]
16 楼
moz [专家分:37620] 发布于 2006-06-17 16:20:00
画蛇添足? 你干脆说口算也很简单
干脆 print 12,18 好了.
17 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-17 17:25:00
不错不错,16楼说出了一个真理。既然我们口算都有了,就不用麻烦计算机了!
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
18 楼
JRX [专家分:180] 发布于 2006-06-17 22:02:00
对啊,用你的话说,口算在cpu和内存占用上都是最优秀的
我来回复