有n個同學(n為偶數),兩人一組,共分成 n/2組。令n/2個同學之體重總和為{S1,S2,……Sn},m為體重總和之平均值m=[(S1,S2,……Sn )/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
輸出說明:列印出每組同學之體重總和及個別體重,且必須依體重總和由大而小印出。
輸出範例:上例中的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
輸入說明:第一列為學生人數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
輸出說明:列印出每組同學之體重總和及個別體重,且必須依體重總和由大而小印出。
輸出範例:上例中的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
Private Sub Form_Load()
回覆刪除Dim x()
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, n
ReDim x(n)
For i = 1 To n
Input #1, y
x(i) = y
Next
For i = 1 To n
For j = 1 To n - i
If x(j) > x(j + 1) Then
b = x(j)
x(j) = x(j + 1)
x(j + 1) = b
End If
Next
Next
j = n
For i = 1 To (n / 2)
Print #2, x(i) + x(j) & "=" & x(i) & "+" & x(j)
j = j - 1
Next
Close
Close
End
End Sub
Dim a(), n As Integer
回覆刪除Private Sub Form_Load()
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, n
ReDim a(Val(n))
For i = 1 To Val(n)
Input #1, x
a(i) = Val(x)
Next i
For i = 1 To Val(n)
For j = i To Val(n)
If i <> j Then
If a(i) < a(j) Then p = a(i): a(i) = a(j): a(j) = p
End If
Next j
Next i
r = Val(n)
For i = 1 To Val(n) / 2
Print #2, (a(i) + a(r)) & " = " & a(r) & " + " & a(i)
r = r - 1
Next i
Close #2
Close #1
End
End Sub