下面程序的功能是:统计存放在数组A中的N个数有多少个是不同的。具体做法是:变量Left指向要被处理的数(从第2个元素开始),Right指向数组最后一个元素。若A(Left)与排在它前面的某个数组元素值相同,就用数组元素A(Right)的值来替换A(Left)的值,同时将变量Right的值减1;否则将变量Left的值加1,处理数组下一个元素,重复以上过程,直到Left>Right为止。Right的值即为不同的数的个数。
Option Explicit
OptionBase 1
Private Sub Commandl_Click()
Dim A() As Integer,N As Integer,I AS Integer
Dim OP As Integer
N=InputBox("请输入数据个数", ,10)
ReDim A(N)
Randomize
For I=1 To N
A(I)=Int(Rnd*10)+1
Text1=Text1 & A(1) & " "
Next I
Call Statistic(A,OP)
Text2="有" & oP & "个不同的数:"
For I=1 To OP
Text2=Text2 & A(I) & " "
Next I
End Sub
Private Sub Statistic(A() As Integer,Right As Integer)
Dim Left As Integer,K As Integer,I As Integer
Right=()
Left=2
Do While Left<=Right
K=()
For I=K To 1 Step -1
If A(Left)=A(I) Then Exit For
Next I
If ()Then
Left=Left+1
. Else
A(Left)=A(Right)
()
End If
Loop
End Sub