回 帖 发 新 帖 刷新版面

主题:[讨论]有一个数,要求编一个程序的题目

题目::有一个数a=-235.7875,要求编一个程序分别按以下要求输出
      (1)取其整数部分(即-235);
      (2)取不大于它的最大整数(即-236);
      (3)按小数四舍五入处理(应得-236);
      (4)取小数点后2位,第3位以后的小数舍去(-235.78);
      (5)取小数点后2位,对第3位小数按四舍五入处理(应得-235.79)。

[em18][em18][em18]
我想了好久的题目了,就是做不来,救救我这个新手吧

回复列表 (共6个回复)

沙发

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软件下运行,你试一下,好吗?


板凳

这是最绝的解法:
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 楼

最绝的解法?
我看不咋的.

4 楼

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 楼

[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 楼

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

我来回复

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