查找并删除重复数据的算法是对数组a中每个元素逐个作为关键字进行从后往前查找,如果有重复,删除该数据后继续查找。例如,第一次将a(1)作为关键字,从a(10)到a(1)进行逐个查找,如果和a(1)相等,则删除该数据,然后继续查找;如果是a(1)本身和它相等,则代表无重复数据。编写VB程序,程序功能如下:运行程序时,在列表框List1中显示数组a中的原始数据;单击“去除重复”按钮(Command1),在列表框List2中输出去除重复后的数组a中的数据,同时在标签Label1中显示删除的数据总个数,运行效果如图所示。
请回答下列问题:
(1)
当数组a中的值依次为1,2,3,7,8,1,6,6,8,7时,共删除数据(填写数值)个。
(2)
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const
maxn=10
Dim
a(1 To maxn) As Integer
Private
Sub Form_Load()
‘maxn个数据存储在数组a中,并在列表框List1中显示
‘代码略
End
Sub
Private
Sub Command1_Click()
Dim
i As Integer, n As Integer ‘n用于存储当前査找的数组长度
Dim
j As Integer, key As Integer ‘key用于存储本次查找关键字的数据位置
key=1:
n=maxn
Do
While key <=n
i=n
Do While a(i) <> a(key)
Loop
If i=key Then ‘未找到,重新下一査找关键字
key=key+1
Else ‘找到重复数据,删除
For j=i To n-1
Next j
n=n-1
End If
Loop
For
i=1 To n
List2.AddItem Str(a(i))
Next
i
Label1.Caption=“共删除数据”++“个”
End
Sub
答案: 【1】4
【1】i=i-1【2】a(j)=a(j+1)【3】Str(maxn-n)