2011年7月9日 星期六

計算平均值

給你一組數字,請寫一個程式計算出這組數字的平均值,四捨五入至小數第2 位。

輸入說明:
第一行的數字,代表有幾個問題要求解。第二行開始的每一行,為一個獨立的問題。每
一行的第一個整數為這個問題所屬數字的數目n,其範圍為[2, 100]間的整數。接下來的n 個
整數,分別代表這n 個數字的數值,數值範圍為[1, 100]間的整數。

輸出說明:
對輸入的每個問題,分別以一行輸出平均數,輸出的格式請四捨五入至小數第二位。

輸入範例:
2
5 2 4 6 8 10
3 52 30 61

輸出範例:
6.00
47.67

3 則留言:

  1. 剛剛才學到一招format的用法@@"
    http://sunh.hosp.ncku.edu.tw/~cww/htm42.htm

    Dim Y() As String
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, N
    For i = 1 To N
    Line Input #1, X
    Y = Split(X)
    Print #2, Format((Total() / UBound(Y)), ".00")
    Next i
    Close #2
    Close #1
    End
    End Sub

    Function Total()
    T = 0
    For i = 1 To UBound(Y)
    T = T + Val(Y(i))
    Next i
    Total = T
    End Function

    輸入範例:
    2
    5 2 4 6 8 10
    3 52 30 61

    輸出範例:
    6.00
    47.67

    回覆刪除
  2. Dim n
    Private Sub Form_Load()
    Me.Hide

    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2

    Input #1, ti

    For i = 1 To ti
    Line Input #1, n
    Print #2, Ac(n)
    Next


    Close
    Close
    End
    End Sub




    Function Ac(a)
    Dim s, m As Integer
    s = Split(a)
    m = 0
    For i = 1 To UBound(s)
    m = m + s(i)
    Next


    Ac = Format((m / UBound(s)), ".00")


    End Function

    回覆刪除
  3. 佑、arro好,
    你們兩個都用了format這個新的函數,也成。
    但是,如果不知道這個函數呢?
    還是可以利用原先熟知的int這個函數。
    x四捨5入到整數的話用
    x=int(x+0.5)
    如果要到小數下2位的話。
    x=int(x*100+0.5)/100

    回覆刪除