龙刺传说全文免费阅读:VB问题!关于随机排序

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 13:56:44
想在9个标签里分别不重复的填入1-9,每次单击按钮都随机出一种不同的排法。这个怎么编呀??

我初学VB,多指教哦

n久没编程,脑子转不动了
想了一个效率比较低的方法

Public Sub fill9(Number() As Integer)
Dim i As Double
Dim j, curpos, index As Integer
'i是随机数字,j是i的整数,是当前的插入值
'index:当前操作的位置,curpos是查询有没有重复值用的
Randomize

Do While index < 9
i = Rnd
j = CInt(i * 10)
If j = 0 Then j = 1
If j = 10 Then j = 9'修正一下j的值

For curpos = 0 To index
If Number(curpos) = j Then
Exit For '如果有重复了,那么再找随机数
End If

If (curpos = index) Then
Number(index) = j
index = index + 1'没有重复,插入j值,再继续
End If
Next
Loop

End Sub

'测试用

Private Sub Form_Click()
Dim Number(9) As Integer
Dim i As Integer
i = 0

fill9 Number
Me.Cls

Do While curpos < 9
Me.Print Number(curpos)
i = i + 1
Loop

End Sub

不要学VB拉..很快就被淘汰了...学JAVA或.net市场会需要一些这方面的人才....

vb的语法不是很清楚,但是从算法上可以把1-9分别存进数组,然后循环随机交换变量,交换几十次基本上就是十分随机的了

你的题好象没说清楚吧,“每次单击按钮都随机出一种不同的排法”是按顺序吗

使用随机函数RND。用法如下
Randomize '设置随机种子
a=RND
这时候得到的是一个0-1之间的数字。怎么处理就看你了

方法很多,我也来写一个

Private Sub Command1_Click()
Randomize Timer
Dim aaa As String
Dim bbb As String
Dim temp As Integer
Dim i As Integer
aaa = "123456789"
bbb = ""
For i = 1 To 9
temp = Mid(aaa, Int(Rnd * Len(aaa) + 1), 1)
bbb = bbb & temp
aaa = Replace(aaa, temp, "")
Next i
MsgBox bbb
End Sub