题库 高中信息

题干

数组a中有20个正整数,以降序排序。在文本框Text1中输入一个正整数data,寻找数组中是否存在两个元素之差等于给定的数据。若是则输出这两个数(有多对数满足条件,只输出最先找到的数对)。否则输出“not find”。实现此问题的算法程序如下,加框处代码有误,请改正。
①________________________
②________________________
③________________________
Private Sub Command1_Click()
Const n = 20
Dim a(20) As Integer
Dim data As Integer, left As Integer, right As Integer, m As Integer
Dim f As Boolean
f = True
data = Val(Text1.Text)
' 随机产生符合题意的数组a中各元素并按降序排序
For i = 1 To n - 1

right = n

Do While ②

m = (left + right) \ 2
If a(i) - a(m) > data Then
right = m - 1
ElseIf a(i) - a(m) < data Then
left = m + 1
Else
Text2.Text = a(i) & a(m)

End If
Loop
Next i
If f=True Then Text2.Text = "not find"
End Sub
上一题 下一题 0.99难度 None 更新时间:2020-04-02 09:24:45

答案(点此获取答案解析)