一个VB问题,不尽感激!

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:13:47
使用随机函数产生10个互不相同的两位整数存放到一维数组中,并且输出该数组,然后求这组数中的最大值及最大值在数组中的位置.
随机函数我知道是a=int((90*rnd)+10),如何使其互不相同?
最大值及最大值在数组中的位置完全没思路...
谢谢!!!
Private Sub Command1_Click()
Print "随机不重复的数组:"
Dim s(1 To 10) As Integer, i%, a%, b%, c%, work As Boolean
Static num(10 To 99)
For i = 10 To 99
num(i) = 0
Next i
Randomize
For a = 1 To 10
begin:

s(a) = Int((99 - 10 + 1) * Rnd + 10)
If num(s(a)) = 0 Then
num(s(a)) = 1
Else
GoTo begin:
End If
Print s(a)
Next a
Print
For a = 10 To 2 Step -1
work = True
For b = 1 To a - 1
If s(b) > s(b + 1) Then
c = s(b)
s(b) = s(b + 1)
s(b + 1) = c
work = False
End If
Next b
If work Then Exit For
Next a

Print "数组中最大的是:"; s(10); "该数在数组中的位置是:"; a

End Sub
这样子最后那步可以帮我写完吗?写完马上给分,多谢了!!!

说下我的思路.
互不相同:每个刚产生的数与所有产生了的数比较.不相等就取.
最大值:冒泡排除法.自己找下资料吧.这个是学VB必须会的.自己找会对你好点.
最大值在数组中的位置:这个最容易,数组不是有下标的吗?

Print "随机不重复的数组:"
Dim s(1 To 10) As Integer, i%, a%, b%, c%, work As Boolean
Static num(10 To 99)
For i = 10 To 99
num(i) = 0
Next i
Randomize
For a = 1 To 10
begin:

s(a) = Int((99 - 10 + 1) * Rnd + 10)
If num(s(a)) = 0 Then
num(s(a)) = 1
Else
GoTo begin:
End If
Print s(a)
Next a
Print

Dim d(10)
For k = 1 To 10
d(k) = s(k)
'Print d(k)
Next

For a = 10 To 2 Step -1
work = True
For b = 1 To a - 1
If s(b) > s(b + 1) Then
c = s(b)
s(b) = s(b + 1)
s(b + 1) = c
work = False
End If
Next b
If work Then Exit For
Next a

Print "数组中最大的是:"; s(10);

For k = 1 To 10
If d(k) = s(10) Then
Print "该数在数组中的位置是