Private Sub Command1_Click()
Dim max As Integer, min As Integer
Dim avg As Single, sum As Single
max = 0
min = 10
Dim ary(10) As Integer
Dim i As Integer
For i = 0 To 9
Controls("text" & i + 2).Text = ary(i)
If ary(i) > max Then
max = ary(i)
End If
If ary(i) < min Then
min = ary(i)
End If
Next
Label2.Caption = "去掉一个最高分" & max
Label3.Caption = "去掉一个最低分" & min
sum = sum + ary(i)
avg = (sum - min - max) / 8
Label4.Caption = "该选手的最后得分是" & avg
End Sub
运行时,随便输入10个1-10之间的数字,结果是这样没有报错另外,代码有写的繁琐或不恰当的地方,欢迎批评指出感谢。
楼主最好把10个text控件做成控件数组,这样就可以简单的写成:ary(i)=val(text(i))
还有,ary(10)最好是single,评委打分不一定是整数。
真如赵四老师说的有如此装逼评委,也只好睁只眼闭只眼,通通按single和谐了。
叁拾肆
XXXIV
36,哦不,再减掉2
……
子子孙孙无穷尽也
Private Sub Command1_Click()
Dim max As Single, min As Single
Dim avg As Single, sum As Single
max = 0
min = 10
Dim ary(10) As Single
Dim i As Integer
For i = 0 To 9
ary(i) = Val(Text2(i).Text)
If ary(i) > max Then
max = ary(i)
End If
If ary(i) < min Then
min = ary(i)
End If
sum = sum + ary(i)
Next
Label2.Caption = "去掉一个最高分" & max
Label3.Caption = "去掉一个最低分" & min
avg = (sum - min - max) / 8
Label4.Caption = "该选手的最后得分是" & avg
End Sub
那么长一串小数,不觉得搞笑?Label4.Caption = "该选手的最后得分是:" & format$(avg, "0.0#")