当前位置:编程学习 > VB >>

VB 简单的编程

某次歌手大赛,共有10位选手和10位评委..。。。要求评委给10位选手打分,,去掉一个最高分及一个最低分后,,求出该选手的平均得分。。。。提示:二重循环,。。。
答案:'把 ㊣乌力㊣ 的代码修改了一下,只要评委3人以上评分都适应

Option Explicit

Private Sub Command1_Click()
Dim Temp As String, A() As String
Dim L As Double, i, j

On Error GoTo Errmsg
A = Split(InputBox("输入每个评委的评分,用空格隔开(至少3个评委)", "输入"))
For i = 0 To UBound(A) - 1
For j = i + 1 To UBound(A)
If Val(A(i)) > Val(A(j)) Then
Temp = A(i)
A(i) = A(j)
A(j) = Temp
End If
Next
Next
For i = 1 To UBound(A) - 1
L = L + A(i)
Next

Print "评委数:" & UBound(A) + 1
Print "最高分:" & A(UBound(A))
Print "最低分:" & A(0)
Print "平均分:" & L / (UBound(A) - 1)
Print
Exit Sub
Errmsg:
MsgBox "检查输入"
End Sub

'form上加一个按钮

Dim Temp, A() As String
Dim L As Long
Private Sub Command1_Click()
A = Split(InputBox("输入每个评委的评分,用空格隔开", "输入"))
For i = 0 To 9
For j = i To 9
If A(i) > A(j) Then
Temp = A(i)
A(i) = A(j)
A(j) = Temp
End If
Next
Next
For i = 1 To 8
L = L + A(i)
Next
Print L
End Sub

Private Sub Form_Click()
Dim a(1 To 10) As Single
Dim sum, max, min As Single
sum = 0
For i = 1 To 10
a(i) = InputBox("请输入第" & i & "个评委的评分:", "输入评分")
sum = sum + a(i)
Next i
max = a(1): min = a(1)
For i = 2 To 10
If a(i) > max Then max = a(i)
If a(i) < min Then min = a(i)
Next i
Print "该歌手的平均分为:" & (sum - max - min) / 8
End Sub

上一个:在vb编程中,call(c)中的c应该是是什么变量类型
下一个:VB系列编程问题7-1

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,