回 帖 发 新 帖 刷新版面

主题:求助QBASIC一道题目

一张试卷由30个问题组成,答对一题+6分,答错一题-4分,有一位同学每道题都答了,只得了0分,要计算该同学答错答对各几题,请编写出相应的程序。
(由于我只学过LET、SWAP,FOR-NEXT、WHILE-WEND、PRINT、IF-THEN、INPUT、READ-DATA、REATORE、一维数组)

回复列表 (共18个回复)

11 楼

对老大徒伤悲果然是高手啊~

12 楼

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 楼

实际上,我也觉得那个循环不应该次数太多,把没有用的都过滤掉才是好程序!
注意题目里隐含了以下条件:
1. 总共30道题,非对即错
2. 总分为零,也就是对错得分相同
3. 一道题对错得分的比例是6:4
根据小学时候学过的比例应用题方法

print "Dui:";30*(4/(4+6)),"Cuo:";30*(6/(4+6))

14 楼

支持13楼的思路!

在cpu和内存占用上都是最优秀的

15 楼

这种题目,有时候是无解的(也就是说,解为分数)。以上所有程序都没有考虑。
下面我借用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 楼

画蛇添足? 你干脆说口算也很简单
干脆 print 12,18 好了.

17 楼

不错不错,16楼说出了一个真理。既然我们口算都有了,就不用麻烦计算机了!
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

18 楼

对啊,用你的话说,口算在cpu和内存占用上都是最优秀的

我来回复

您尚未登录,请登录后再回复。点此登录或注册