题目

(加试题)数组a中存储的是一组正整数,特征是:①以三个数为一组的话,每组中任意一个数都比前面一组中的任意一个数要大;②每组中三个数依次递减;③数组中数的总个数为3的倍数。依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有错,请改正。 …… Private Sub Command1_Click()  Const n = 15  Dim a(1 To n) As Integer, search As Integer, key As Integer  Dim i As Integer, j As Integer, m As Integer '读取一组正整数,按上述规则存入数组a中,代码略。  key = Val(Text1.Text)  i = 1: j = n: search = 0  Do While i <= j  m = (i + j) \ 2  If m Mod 3 <> 0 Then      '① 把m调整到三个一组的最后一个数的位置  If key = a(m) Then  search = m : Exit Do ElseIf key < a(m) Then  j = m - 3  ElseIf Then      '②  i = m + 1  ElseIf key = a(m - 2) Then  search = m - 2 : Exit Do ElseIf key = a(m - 1) Then  search = m - 1 : Exit Do Else  search = 0 : Exit Do  End If  Loop  If search <> 0 Then  Text2.Text = Str(search) Else  Text2.Text = "找不到"  End If End Sub 加①② 答案:【1】m+1或m+3-mMod3【2】key> a(m- 2)
信息技术 试题推荐
最近更新