某次大奖赛有7个评委同时为一位选手打分,去掉一个最高分和一个最低分,其余5个分数的平均值为该名参赛者的最后得分。请填空完成规定的功能。
Sub Command1_Click()
Dim mark!,aver!,i%,max1!,min1!
aver=0
For i=1 To 7
mark=InputBox("请输入第"&i&"位评委的打分")
If i=1 Then
max1=mark:min1=mark
Else
If mark<min1 Then
min1=mark
ElseIf mark>max1 Then
(14)
End If
End If
(15)
Next i
aver=(aver-max1-min1)/5
MsgBox aver
End Sub
参考答案:aver=aver+mark或avet=mark+aver
解析: 最后得分的计算是先找出7位评委给出的分数中的最高分和最低分,然后执行“(总分-最高分-最低分)/5”得出的结果就是最后得分。程序首先定义了变量aver,并赋初值0,该变量用于存放最后得分。通过for循环“For i=1 To 7”,依次收集评委打分,并判断出最高分和最低分。通过语句“mark=InputBox("请输入第"&i&"位评委的打分")”依次获得了7位评委的打分,然后通过“If i=1 Then max1=mark:min1=mark”语句,将第1位评委的打分mark的值赋给变量max1和min1,通过语句“If mark<min1 Then min1=mark”将其他某评委打的分与最低分进行比较,如果其他某评委打的分小于最低分,则将其赋值给min1,即使得min1的值始终保持最低分。否则通过ElseIf判断mark的值是否大于max1,如果大于,则将mark的值赋给max1,即使得max1的值始终保持最高分,所以第14空应该填“max1=maik”。当退出If判断后,需要将当前分数累加到总分aver中,因此第15空填“aver=aver+mark”,最后通过语句“aver=(aver-max1-min1)/5”得出最后得分。