主题:打逗号
007bond
[专家分:540] 发布于 2007-04-08 16:36:00
编写一个程序,接受任意五个实数,按下列格式输出。
例如:输入 2754.4365,983.4,15000,0.145,6.003
输出:
2,754.44
983.40
15,000.00
0.15
6.00
回复列表 (共13个回复)
11 楼
moz [专家分:37620] 发布于 2007-05-08 23:40:00
是的是的,你教训得极是,谢谢你的提醒,我马上就卖普洱去.
12 楼
007bond [专家分:540] 发布于 2007-05-09 18:40:00
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 楼
007bond [专家分:540] 发布于 2007-05-09 18:41:00
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
我来回复