VB用户输入10个选手的得分(0-10分),然后去掉一个最高分和一个最低分,求出某选手的最后得分(平均分)。

2025-02-22 15:20:36
推荐回答(2个)
回答1:

Private Sub Command1_Click()
  Counter = Counter + 1
  Randomize
  Dim Score As Single, Max As Single, Min As Single, Sum As Single, i As Integer
  Max = 0: Min = 10
  
  For i = 1 To 10
    Score = InputBox("请输入第" & i & "个裁判的打分:", "", Int(Rnd * 1000) / 100)
    Print Format(Score, "0.00") + Space(2);
    Sum = Sum + Score
    If Score > Max Then Max = Score
    If Score < Min Then Min = Score
  Next i
  Sum = Sum - Max - Min
  Print
  Print "去掉一个最高分:"; Format(Max, "0.00")
  Print "去掉一个最低分:"; Format(Min, "0.00")
  Print "最后得分:"; Sum / 8
  Print
End Sub

回答2:

Private Sub Command1_Click()
    Const N = 10
    Dim a(1 To N)
    For i = 1 To N
        a(i) = Val(InputBox("输入第" & i & "个成绩", "成绩", 8))
    Next i
    
    maxid = 1: minid = 1: Sum = 0
    For i = 1 To N
        If a(i) > a(maxid) Then maxid = i
        If a(i) < a(minid) Then minid = i
        Sum = Sum + a(i)
    Next i
    Avg = (Sum - a(maxid) - a(minid)) / (N - 2)
    Print "最后得分:" & Avg
End Sub