'这方法好像更合理一些,,,
Option Explicit
Sub test()
Dim i, j, sum, min, max, p, m, n
ReDim arr(1 To 4)
Randomize
For i = 1 To UBound(arr)
arr(i) = Round(Rnd, 2)
Next
Debug.Print Join(arr, ",")
ReDim brr(1 To UBound(arr, 1), 1 To UBound(arr, 1) - 1)
For i = 1 To UBound(arr)
n = 0
For j = 1 To UBound(arr)
If i <> j Then
n = n + 1
brr(i, n) = arr(j)
If n = 1 Then
min = brr(i, n): max = min
Else
If min > brr(i, n) Then min = brr(i, n)
If max < brr(i, n) Then max = brr(i, n)
End If
End If
Next
If i = 1 Then
m = max - min: p = i
Else
If m > max - min Then m = max - min: p = i
End If
Next
ReDim arr(1 To UBound(arr) - 1)
For i = 1 To UBound(arr)
arr(i) = brr(p, i)
sum = arr(i) + sum
Next
Debug.Print Join(arr, ","), sum / UBound(arr)
End Sub |