回 帖 发 新 帖 刷新版面

主题:打逗号


编写一个程序,接受任意五个实数,按下列格式输出。
例如:输入 2754.4365,983.4,15000,0.145,6.003
      输出:
     2,754.44
       983.40
    15,000.00
         0.15
         6.00

回复列表 (共13个回复)

11 楼

是的是的,你教训得极是,谢谢你的提醒,我马上就卖普洱去.

12 楼

CLS
FOR i = 1 TO 5
INPUT n$(i)
k = INSTR(n$(i), ".")
IF k = 0 THEN a(i) = 0 ELSE a(i) = VAL(MID$(n$(i), k)): n$(i) = LEFT$(n$(i), k - 1)
a(i) = INT(a(i) * 100 + .5) / 100
s = INT(a(i)): a(i) = a(i) - s
FOR j = LEN(n$(i)) TO 1 STEP -1
a = VAL(MID$(n$(i), j, 1))
a = a + s: s = a \ 10: a = a MOD 10
MID$(n$(i), j, 1) = LTRIM$(STR$(a))
IF s = 0 THEN EXIT FOR
NEXT j: IF s <> 0 THEN n$(i) = LTRIM$(STR$(s)) + n$(i)
n$ = ""
FOR j = 1 TO LEN(n$(i))
z = LEN(n$(i)) - j: n$ = n$ + MID$(n$(i), j, 1)
IF z MOD 3 = 0 AND z >= 3 THEN n$ = n$ + ","
NEXT j: n$(i) = n$
IF LEN(n$) > x THEN x = LEN(n$)
n$(i) = n$
NEXT i
FOR i = 1 TO 5
PRINT TAB(x + 1 - LEN(n$(i))); n$(i); USING ".##"; a(i)
NEXT i
GGbond的方法,输大一些的数就不行了,看我的

13 楼

CLS
FOR i = 1 TO 5
INPUT n$(i)
k = INSTR(n$(i), ".")
IF k = 0 THEN a(i) = 0 ELSE a(i) = VAL(MID$(n$(i), k)): n$(i) = LEFT$(n$(i), k - 1)
a(i) = INT(a(i) * 100 + .5) / 100
s = INT(a(i)): a(i) = a(i) - s
FOR j = LEN(n$(i)) TO 1 STEP -1
a = VAL(MID$(n$(i), j, 1))
a = a + s: s = a \ 10: a = a MOD 10
MID$(n$(i), j, 1) = LTRIM$(STR$(a))
IF s = 0 THEN EXIT FOR
NEXT j: IF s <> 0 THEN n$(i) = LTRIM$(STR$(s)) + n$(i)
n$ = ""
FOR j = 1 TO LEN(n$(i))
z = LEN(n$(i)) - j: n$ = n$ + MID$(n$(i), j, 1)
IF z MOD 3 = 0 AND z >= 3 THEN n$ = n$ + ","
NEXT j: n$(i) = n$
IF LEN(n$) > x THEN x = LEN(n$)
n$(i) = n$
NEXT i
FOR i = 1 TO 5
PRINT TAB(x + 1 - LEN(n$(i))); n$(i); USING ".##"; a(i)
NEXT i

我来回复

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