1: 大概代码 dim xMax as integer dim xMin as integer dim xTotal as integer dim i as integer dim n as integer '数组个数 n=100 xMax=x(1) xMin=x(1) xTotal=0 for i=1 to n if x(i)>xMax then xMax=x(i) end if if x(i)<xMin then xMin=x(i) end if xtotal=xTotal+x(i) next i debug.print "Max:" & xMax debug.print "Min:" & xMin debug.print "Avg:" & (xTotal-xMax-Xmin)/(100-2)2。答案有无数种
1 利用一个 Sorted = True 的 ListBox: List1.Clear For i = 0 To Ubound(x) List1.AddItem Format(x(i), "0#.00") Next i List1.RemoveItem List1.ListCount - 1 '去掉最大值 List1.RemoveItem 0 '去掉最小值For i = 0 To List1.ListCount - 1 Tmp = Tmp + Val(List1.List(i)) Next i MsgBox Format(Tmp / List1.ListCount, "Standard")2 逆向模拟: Dim sngMax As Single Dim sngMin As Single Dim sngAvg As Single Dim n As IntegersngMax = InputBox("请输入最大值") sngMin = InputBox("请输入最小值") If sngMin >= sngMax Then MsgBox "最小值大于等于最大值!", vbOkOnly, "错误" Exit Sub End IfsngAvg = InputBox("请输入平均值") If sngAvg <= sngMin Or ngAvg >= sngMax Then MsgBox "平均值小于等于最小值,或大于等于最大值!", vbOkOnly, "错误" Exit Sub End Ifn = InputBox("请输入数值个数")sum = sngAvg * (n - 2) sum = sum + sngMax + sngMinReDo: Redim x(n - 1) Randomize For i = n - 1 To 2 Step -1 x(i) = sngMin + Rnd() * (sngMax - sngMin) sum = sum - x(i) If sum < i * sngMin Or sum > i * sngMax Then Goto ReDo If i = 1 Then x(i) = sum End If x(1) = sngMin x(0) = sngMax此后做一下乱序即可。
dim xMax as integer
dim xMin as integer
dim xTotal as integer
dim i as integer
dim n as integer '数组个数
n=100
xMax=x(1)
xMin=x(1)
xTotal=0
for i=1 to n
if x(i)>xMax then
xMax=x(i)
end if
if x(i)<xMin then
xMin=x(i)
end if
xtotal=xTotal+x(i)
next i
debug.print "Max:" & xMax
debug.print "Min:" & xMin
debug.print "Avg:" & (xTotal-xMax-Xmin)/(100-2)2。答案有无数种
利用一个 Sorted = True 的 ListBox:
List1.Clear
For i = 0 To Ubound(x)
List1.AddItem Format(x(i), "0#.00")
Next i
List1.RemoveItem List1.ListCount - 1 '去掉最大值
List1.RemoveItem 0 '去掉最小值For i = 0 To List1.ListCount - 1
Tmp = Tmp + Val(List1.List(i))
Next i
MsgBox Format(Tmp / List1.ListCount, "Standard")2
逆向模拟:
Dim sngMax As Single
Dim sngMin As Single
Dim sngAvg As Single
Dim n As IntegersngMax = InputBox("请输入最大值")
sngMin = InputBox("请输入最小值")
If sngMin >= sngMax Then
MsgBox "最小值大于等于最大值!", vbOkOnly, "错误"
Exit Sub
End IfsngAvg = InputBox("请输入平均值")
If sngAvg <= sngMin Or ngAvg >= sngMax Then
MsgBox "平均值小于等于最小值,或大于等于最大值!", vbOkOnly, "错误"
Exit Sub
End Ifn = InputBox("请输入数值个数")sum = sngAvg * (n - 2)
sum = sum + sngMax + sngMinReDo:
Redim x(n - 1)
Randomize
For i = n - 1 To 2 Step -1
x(i) = sngMin + Rnd() * (sngMax - sngMin)
sum = sum - x(i) If sum < i * sngMin Or sum > i * sngMax Then Goto ReDo
If i = 1 Then x(i) = sum
End If
x(1) = sngMin
x(0) = sngMax此后做一下乱序即可。