English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

有n個同學(n為偶數),兩人一組,共分成 n/2組。令n/2個同學之體重總和為{S1,S2,……Sn},m為體重總和之平均值m=[( )/n],分組的原則為必須使得 m|之差距總和為最小。
(輸出結果的差距若非為最小,則本題算錯,零分計算。)寫一程式完成此分組工作。

輸入說明:第一列為學生人數n,(4≦n≦20)。
第二列到第n+1列為學生的體重。(30≦學生的體重≦150)

輸入範例:假定有10個同學,其體重分別為:82、53、74、84、45、46、57、67、43、47。
實際輸入之檔案(test4.txt)內容如下:
10
82
53
74
84
45
46
57
67
43
47
輸出說明:列印出每組同學之體重總和及個別體重,且必須依體重總和由大而小印出。
實際輸出之檔案(result4.txt)內容如下:
127 = 43 + 84
127 = 45 + 82
120 = 46 + 74
114 = 47 + 67
110 = 53 + 57

2006-06-06 17:28:25 · 1 個解答 · 發問者 紜曦 2 in 電腦與網際網路 程式設計

1 個解答

Private Sub Command1_Click()        Dim A() As Integer, I As Integer, J As Integer, T As Integer, Ts As String                '將C:\Text4.txt讀入A()        T = FreeFile        Open "C:\Text4.txt" For Input As #T        Do Until EOF(T)           ReDim Preserve A(I)           Line Input #T, Ts           A(I) = Val(Ts): I = I + 1        Loop        Close #T                '從A(1)~UBound(A)做由小至大之排序        For I = 1 To UBound(A)            For J = I To UBound(A)                If A(I) > A(J) Then                   T = A(I): A(I) = A(J): A(J) = T                End If            Next        Next                'J為學生人數        J = A(0)                '建立B陣列記錄每一組之體重和及S陣列記錄每一組之體重和之運算式        ReDim B(J \ 2 - 1) As Integer, S(J \ 2 - 1) As String                '頭跟尾組合成一組,如:1-10,2-9,3-8,4-7,5-6        For I = 1 To J / 2            '記錄體重和            B(I - 1) = A(I) + A(J)            '記錄體重和之運算式            S(I - 1) = "=" & A(I) & "+" & A(J)            J = J - 1        Next                '體重和由大至小做排序        For I = 0 To UBound(B)            For J = I To UBound(B)                If B(I) < B(J) Then                   N = B(I): B(I) = B(J): B(J) = N                   Ts = S(I): S(I) = S(J): S(J) = Ts                End If            Next        Next                '輸出至C:\Result4.txt        T = FreeFile        Open "C:\Result4.txt" For Output As #T        For I = 0 To UBound(B)            Print #T, CStr(B(I)); S(I)        Next        Close #T        MsgBox "已輸出至C:\Result4.txt"End Sub

2006-06-07 09:50:57 · answer #1 · answered by W.J.S. 7 · 0 0

fedest.com, questions and answers