在线求VB题答案

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:45:59
有编号1~10的10个球,编写程序,在其中随机抽取6个球(无放回),并输出它们的编号。
提示:创建数组t(10)和c(6),在数组c(6)里依次记录抽出的6个数,t(10)里用0/1记录1-10这十个数字中哪几个数已经被抽掉。每次抽取前先用randomize time命令打乱因子,然后用rnd*10+1任意生成1-10的随机整数,与t(10)作比较,如果抽到重复的数,那么再抽一次。

if t(c(i))=1 then msgbox "已选"

Dim t(1 To 10) As Boolean
Dim c(1 To 6) As Integer
For i = 1 To 6
Randomize
Do
n = Int(Rnd * 10) + 1
Loop While t(n)
c(i) = n
Print c(i)
t(n) = True
Next i

放个按钮到窗体上

Private Sub Command1_Click()
Dim t(1 To 10) As Byte '根据你的要求,只能这样,vb里面t(10)是t(0)-t(10)是11项了
Dim c(1 To 6) As Byte '这样定义的原因同上

Dim i As Integer
Dim RndNum As Byte '生成的随机数

For i = 1 To 6

doAgain:
Randomize Time '初始化随机种子
RndNum = Int(Rnd * 10) + 1 '生成随机数
If t(RndNum) = 1 Then
'如果球已经被抽走,重新生成一个
Debug.Print " 球" & RndNum & " 已经被抽走"
GoTo doAgain
End If

'如果没有抽取,记录到c里面
c(i) = RndNum
t(RndNum) = 1 '标记该球已经被拿走
Debug.Print &quo