回 帖 发 新 帖 刷新版面

主题:求助QBASIC一道题目

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

回复列表 (共18个回复)

沙发

我还没学到数组呢

板凳

一张试卷由30个问题组成,答对一题+6分,答错一题-4分,有一位同学每道题都答了,只得了0分,要计算该同学答错答对各几题,请编写出相应的程序。
CLS
FOR I=1 TO 30
  J=(I*6)/4
  IF  I+J=30 THEN
    ? "dui:";I
    ? "cuo:";J
  ENDIF
NEXT I
END

3 楼

CLS是什么意思?

4 楼

倒~
CLS是清屏语句(让上一次的输出结果不再显示~)

5 楼

那个语句我还学过啊

6 楼

二楼的想法可嘉,已经能把握数学中的简化了
但没经验证过的做法不值得赞扬
1. for I 的范围不对,你为什么要限定在[1,5]而不是[1,30]呢?能告诉我理由吗?
2. IF条件J=int(J)可以理解,但其实是多余的.试想一个带分数与整数I的和有可能等于整数30吗?

7 楼

1. for I 的范围不对,你为什么要限定在[1,5]而不是[1,30]呢?能告诉我理由吗? 
因为对的题数只可能是30/6=5啊,你认为I(I>=6)*6-(30-I)*4会等于0吗?
2. IF条件J=int(J)可以理解,但其实是多余的.试想一个带分数与整数I的和有可能等于整数30吗? 
对,这个的确是多余了的,我马上改,谢谢了

8 楼

我什么都不说了,
希望你能用你的程序把结果算出来自己看看

9 楼

倒霉啊~是应该改成FOR I=1 TO 30
谢谢moz啊,希望以后能帮偶多多找出点错来,非常感谢,

10 楼

实际上,我觉得那个循环不应该次数太多,把没有用的都过滤掉才是好程序!

注意题目里隐含了一个条件,就是30道题不是对就是错,没有其他。
CLS
FOR I=1 TO 30/2            ’显然,答对的题不到一半
  J=30-I
  IF  6*I=4*J THEN
    ? "dui:";I
    ? "cuo:";J
  ENDIF
NEXT I
END

我来回复

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