主题:求助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个回复)
沙发
suiyue [专家分:20] 发布于 2006-06-13 20:44:00
我还没学到数组呢
板凳
JRX [专家分:180] 发布于 2006-06-13 21:05:00
一张试卷由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 楼
如意逍遥扇 [专家分:0] 发布于 2006-06-13 21:35:00
CLS是什么意思?
4 楼
JRX [专家分:180] 发布于 2006-06-14 19:25:00
倒~
CLS是清屏语句(让上一次的输出结果不再显示~)
5 楼
如意逍遥扇 [专家分:0] 发布于 2006-06-14 19:36:00
那个语句我还学过啊
6 楼
moz [专家分:37620] 发布于 2006-06-15 11:42:00
二楼的想法可嘉,已经能把握数学中的简化了
但没经验证过的做法不值得赞扬
1. for I 的范围不对,你为什么要限定在[1,5]而不是[1,30]呢?能告诉我理由吗?
2. IF条件J=int(J)可以理解,但其实是多余的.试想一个带分数与整数I的和有可能等于整数30吗?
7 楼
JRX [专家分:180] 发布于 2006-06-15 21:50:00
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 楼
moz [专家分:37620] 发布于 2006-06-16 12:20:00
我什么都不说了,
希望你能用你的程序把结果算出来自己看看
9 楼
JRX [专家分:180] 发布于 2006-06-16 16:51:00
倒霉啊~是应该改成FOR I=1 TO 30
谢谢moz啊,希望以后能帮偶多多找出点错来,非常感谢,
10 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-17 01:03:00
实际上,我觉得那个循环不应该次数太多,把没有用的都过滤掉才是好程序!
注意题目里隐含了一个条件,就是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
我来回复