主题:[讨论]有一个数,要求编一个程序的题目
qbth5927
[专家分:0] 发布于 2007-09-04 19:03:00
题目::有一个数a=-235.7875,要求编一个程序分别按以下要求输出
(1)取其整数部分(即-235);
(2)取不大于它的最大整数(即-236);
(3)按小数四舍五入处理(应得-236);
(4)取小数点后2位,第3位以后的小数舍去(-235.78);
(5)取小数点后2位,对第3位小数按四舍五入处理(应得-235.79)。
[em18][em18][em18]
我想了好久的题目了,就是做不来,救救我这个新手吧
回复列表 (共6个回复)
沙发
mczzzhao [专家分:0] 发布于 2007-09-04 20:28:00
a=-235.7875
print fix(a)
print int(a)
print int((a*10+0.5)/10)
print int((a*100))/100
print int ((a*100+0.5)/100)
end
以上程序可在QB软件下运行,你试一下,好吗?
板凳
Matodied [专家分:7560] 发布于 2007-09-04 22:07:00
这是最绝的解法:
CLS
a = -235.7875: a$ = LTRIM$(STR$(a))
i = 1: s$ = ""
DO
PRINT MID$(a$, i, 1); : s$ = s$ + MID$(a$, i, 1): i = i + 1
LOOP UNTIL MID$(a$, i, 1) = ".": PRINT
FOR j = 1 TO LEN(s$) - 1: PRINT MID$(s$, j, 1); : NEXT j
IF MID$(s$, 1, 1) = "-" THEN
PRINT CHR$(ASC(RIGHT$(s$, 1)) + 1)
ELSE
PRINT RIGHT$(s$, 1)
END IF
t = VAL(s$)
IF MID$(a$, i + 1, 1) >= "5" THEN t = SGN(t) * (ABS(t) + 1)
PRINT t: t$ = MID$(a$, 1, i + 2): PRINT t$
IF MID$(a$, i + 3, 1) >= "5" THEN
MID$(t$, LEN(t$), 1) = CHR$(ASC(MID$(t$, LEN(t$), 1)) + 1)
END IF
PRINT t$
END
3 楼
我的电脑 [专家分:990] 发布于 2007-09-21 17:45:00
最绝的解法?
我看不咋的.
4 楼
QB小猪 [专家分:1200] 发布于 2007-09-24 14:19:00
cls
a=-235.7875
?fix(a)
?int(a)
?int(a*10+0.5)/10
?fix(a*100)/100
?int(a*1000+0.5)/10
end
1楼的程序不对!
5 楼
Lovely哆啦 [专家分:1360] 发布于 2007-09-30 22:00:00
[quote]cls
a=-235.7875
?fix(a)
?int(a)
?int(a*10+0.5)/10
?fix(a*100)/100
?int(a*1000+0.5)/10
end
1楼的程序不对![/quote]
4楼的程序不对!
应该是? INT(A*1000+0.5)/1000
6 楼
hxy_anhui [专家分:320] 发布于 2009-01-29 20:04:00
CLS
A = -235.7875
PRINT FIX(A)
PRINT INT(A)
PRINT CINT(A)
PRINT INT(A * 100) / 100
PRINT (INT(A * 100) + 0.5) / 100
END
我来回复