回 帖 发 新 帖 刷新版面

主题:行行好,帮帮忙,解一题!!!

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

回复列表 (共5个回复)

沙发

for i = 1 to 5
input n
a(i)=n
next
l=10   '确保对齐输出
for i =1 to 5
? tab(i-len(a(I)));  '根据每个数据的不同长度要调整输出的位置
? using "###,###.##";a(I)  '有逗号 表示显示分节符
next

板凳

楼上的,你的程序不对呀!
不知道,就不要随便发帖!
[em8][em8]
[em14][em14]

3 楼

终于把程序写出来了,可累死我了,希望给30分。
CLS
DIM a1 AS DOUBLE
DIM a$(5)
FOR i = 1 TO 5
    INPUT a1
    b = a1 - FIX(a1): b$ = LTRIM$(STR$(b))
    dw = LEN(b$) - 1
    IF dw < 2 THEN
       b$ = LTRIM$(STR$(a1))
       IF dw = 0 THEN b$ = b$ + ".00" ELSE b$ = b$ + "0"
    ELSEIF dw > 2 THEN
       a1 = INT(a1 * 100 + .51) / 100: b$ = LTRIM$(STR$(a1))
    ELSE
       b$ = LTRIM$(STR$(a1))
    END IF
    a$(i) = b$
NEXT i
CLS
FOR i = 1 TO 5
    p = INSTR(a$(i), "."): k = 0: m$ = ""
    IF p = 1 THEN a$(i) = "0" + a$(i)
    IF p = 0 OR LEN(a$(i)) - p < 2 THEN
       IF p = 0 OR LEN(a$(i)) - p = 0 THEN
          a$(i) = a$(i) + ".00"
       ELSE
          a$(i) = a$(i) + "0"
       END IF
    END IF
    n$ = "": FOR j = p + 1 TO LEN(a$(i)): n$ = n$ + MID$(a$(i), j, 1): NEXT j
    FOR j = p - 1 TO 1 STEP -1
        k = k + 1
        IF k >= 4 AND k MOD 3 = 1 THEN m$ = "," + m$
        m$ = MID$(a$(i), j, 1) + m$
    NEXT j
    IF m$ <> "" THEN a$(i) = m$
    IF n$ <> "" AND INSTR(a$(i), ".") = 0 THEN a$(i) = a$(i) + "." + n$
NEXT i
t = INSTR(a$(1), ".") - 1
FOR i = 1 TO 5
    IF MID$(a$(i), 2, 1) = "," AND LEFT$(a$(i), 1) = "-" THEN
       a$(i) = "-" + MID$(a$(i), 3)
    END IF
    IF (INSTR(a$(i), ".") - 1) > t THEN t = INSTR(a$(i), ".") - 1
NEXT i
FOR i = 1 TO 5
    s = INSTR(a$(i), ".") - 1
    PRINT TAB(t - s + 1); a$(i)
NEXT i
END

4 楼

CLS
DIM n AS DOUBLE
FOR i = 1 TO 5
INPUT n
n = INT(n * 100 + .5) / 100: a(i) = n - INT(n)
b$ = LTRIM$(STR$(INT(n)))
FOR j = 1 TO LEN(b$)
c$(i) = c$(i) + MID$(b$, j, 1): w = LEN(b$) - j
IF w MOD 3 = 0 AND w > 2 THEN c$(i) = c$(i) + ","
NEXT j
IF LEN(c$(i)) > x THEN x = LEN(c$(i))
NEXT i
FOR i = 1 TO 5
PRINT TAB(x + 1 - LEN(c$(i))); c$(i); USING ".##"; a(i)
NEXT i

5 楼

1 楼  
CLS
DIM n AS DOUBLE
FOR i = 1 TO 5
INPUT n
n = INT(n * 100 + .5) / 100: a(i) = n - INT(n)
b$ = LTRIM$(STR$(INT(n)))
FOR j = 1 TO LEN(b$)
c$(i) = c$(i) + MID$(b$, j, 1): w = LEN(b$) - j
IF w MOD 3 = 0 AND w > 2 THEN c$(i) = c$(i) + ","
NEXT j
IF LEN(c$(i)) > x THEN x = LEN(c$(i))
NEXT i
FOR i = 1 TO 5
PRINT TAB(x + 1 - LEN(c$(i))); c$(i); USING ".##"; a(i)
NEXT i

我来回复

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