编程论坛
注册
登录
编程论坛
→
VB6论坛
求一段代码.要求比较精简的
lkflsj
发布于 2012-12-13 11:54, 256 次点击
在1-100中生成33个数组.每组3个数.每组数的组合是随机的.每个数组里的数不能重复出现.比如10出现在一个数组里.那么其它数组将不能有10了.程序结束后显示数组结果和剩下的一个数
[
本帖最后由 lkflsj 于 2012-12-13 11:55 编辑
]
1 回复
#2
风吹过b
2012-12-13 13:36
Option Explicit
Private Sub Command1_Click()
Dim i As Long
Dim j As Long
Dim m As Long
Dim q(1 To 100) As Boolean
Dim jg(1 To 33, 1 To 3) As Long
For i = 1 To 100 '初始化未使用的数据
q(i) = False
Next i
For i = 1 To 33
For j = 1 To 3
m = Int(Rnd() * 99) + 1 '产生一个数据
Do While q(m) '是否用过
'第一种处理办法:重新产生,有可能会继续重复
'm = Int(Rnd() * 99) + 1
'第二种处理办法:向下搜索第一个未使用的数据
m = m + 1
If m > 100 Then m = 1
Loop
jg(i, j) = m '使用该数据
q(m) = True '标记为使用了
Next j
Next i
'显示结果
Cls
For i = 1 To 33
For j = 1 To 3
Print jg(i, j);
Next j
Print
Next i
'搜索并显示未使用的数据
For i = 1 To 100
If Not q(i) Then
Print i
End If
Next i
End Sub
1