VB里求平均数问题

来源:百度知道 编辑:UC知道 时间:2024/07/01 14:08:56
有6个数,若6个数与他们的平均值比较不超过10%,那么代表值就等于6个数的平均值.
若6个数有一个数与平均值比较超过10%,那么去掉这个数,用剩下的5个数与这5个数的平均值比较,若都不超差10%,那代表值等于5个数的平均值,若有1个或以上的值超差,此组数据作废.
若6个数与他们的平均值比较有2个或2个以上超过10%,此组数据作废.

Private Sub Command1_Click()
Dim a() As Single, WuXiao() As Boolean, I As Long, nStr As String
Dim Zong As Single, P As Single, Ge As Long, WuS As Long, Cuo As Boolean
Dim Ws As Long

Ge = 6 '数据个数,可修改,比如 10,11 等
Ws = 1 '允许无效数据的最多个数,可修改
ReDim a(1 To 6): ReDim WuXiao(1 To 6)
For I = 1 To Ge
a(I) = 100
Next
a(1) = a(1) + 2: a(2) = a(2) + 20

'用户检查更改数据
For I = 1 To Ge
nStr = InputBox("请输入数据,第 " & I & " 个:" & vbCrLf & "输入为空表示选中“取消”。", "输入数据", a(I))
If nStr = "" Then Exit Sub
nStr = Val(nStr)
Next

'计算总和 Zong
For I = 1 To Ge
Zong = Zong + a(I)
Next
P = Zong / Ge '计算平均值 P

'检查是否与平均值比较超过10%
Cha1:
For I = 1 To Ge
If Not WuXiao(I) Then
If Abs((a(I) - P) / P) > 0.1 Then
Wu