某校跳高比赛计分规则如下:每个高度每位选手最多试跳三次,成功记为1,失败或轮空记为0。如选手第一次试跳成功记为100,第二次试跳成功记为010,第三试跳成功记为001,三次失败则终止比赛。编写VB程序统计选手积分,在文本框Text1中输入姓名和成绩,在列表框List1中输出结果,其算法如下:1.将每个选手的跳高记录三位一组转换成十进制数存储到数组a (该数组元素的值都不相同)。2.先比较数组a中各数组元素的长度,长度长的排名在前;若长度相同的情况下从后往前依次比较字符大小,当前数值大的排名在前。程序运行界面如图所示:
请在划线处填入合适的代码。 Dim a(1 To 9) As String '存储跳高成绩 Dim b(1 To 9) As String '存储学生姓名 Dim c(1 To 9) As Integer Private Sub Command1_Click() Dim ch As String, tmp As Integer, t As Integer Dim p As Integer, k As Integer, i As Integer, j As Integer Dim s As String s = Text1.Text: t = 0 For i = 1 To . If Mid(s, i, 1) <> "/" Then ch = ch + Mid(s, i, 1) Else t = t + 1 If t Mod 2 = 0 Then a(t \ 2) = zh(ch) Else End If ch = "" End If Next i For i = 1 To t\2 c(i) = i Next i For i = 1 To t \ 2 - 1 p = i For j = i + 1 To t \ 2 If Len(a(c(p))) < Len(a(c(j))) Then p = j ElseIf Len(a(c(j))) = Len(a(c(p))) Then k = Len(a(j)): flag = True Do While k >= 1 And flag If Val(Mid(a(c(j)), k, 1)) > Val(Mid(a(c(p)), k, 1)) Then p = j flag=false ElseIf val(Mid(a(c(j)), k, 1)) = val(Mid(a(c(p)), k, 1)) Then k = k - 1 Else flag = False End If Loop End If Next j If p <> i Then tmp = c(i): c(i) = c(p): c(p) = tmp End If Next i For i = 1 To t \ 2 Next i End Sub Function zh(cm As String) As String Dim temp As String Dim i As Integer, j As Integer For i = 1 To For j = 1 To 3 temp =temp * 2 + Val(Mid(cm, (i - 1) * 3 + j, 1)) . Next j zh = zh + CStr(temp) 'CStr函数可把表达式转换为字符串类型 temp = 0 Next i End Function
答案:【1】Len(s)/len(text1.text)【2】b((t + 1) \ 2) = ch【3】List1.AddItem Str(i) + " " + b(c(i)) + " " + a(c(i))【4】len(cm)\3