这是一个学校项目,任务是创建一个随机数发生器,产生6个结果(数字),这些数字必须存储到一个数组中,然后一次数字已经选择了一个按钮,然后使用冒泡排序按升序对它们进行排序。独特的随机数校验数组
我遇到的问题是,我得到了我的数组中的重复数字,但我已经设法完成了其余的要求。
Public Class Form1
Dim pickedNumbers(5) As Integer
Private Function getRandomNumber()
Randomize()
Dim randomNumber As Integer = CInt(Int((59 * Rnd()) + 1))
If pickedNumbers.Contains(randomNumber) Then
getRandomNumber()
End If
Return randomNumber
End Function
Private Sub addNumbers()
For i = 0 To 5
pickedNumbers(i) = getRandomNumber()
Next
outputNumbers()
End Sub
Private Sub sortNumbers()
Dim Temp As Integer
For i = 5 To 1 Step -1
For k = 0 To i - 1
If pickedNumbers(k) > pickedNumbers(k + 1) Then
Temp = pickedNumbers(k)
pickedNumbers(k) = pickedNumbers(k + 1)
pickedNumbers(k + 1) = Temp
End If
Next
Next
outputNumbers()
End Sub
Private Sub outputNumbers()
tb1.Text = pickedNumbers(0)
tb2.Text = pickedNumbers(1)
tb3.Text = pickedNumbers(2)
tb4.Text = pickedNumbers(3)
tb5.Text = pickedNumbers(4)
tb6.Text = pickedNumbers(5)
End Sub
Private Sub btnPickNumbers_Click(sender As System.Object, e As System.EventArgs) Handles btnPickNumbers.Click
addNumbers()
End Sub
Private Sub btnSortOrder_Click(sender As Object, e As EventArgs) Handles btnSortOrder.Click
sortNumbers()
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is TextBox Then
ctrl.Text = ""
End If
Next
End Sub
末级
我试图回忆起我的职责,是否存在以产生另一个数字。
我试着在标签框中输入visual basic,VBA出现了,我的道歉。 – Sickaaron
随机数字不一定是唯一的。如果第二个号码不允许与第一个号码相同,它不是随机的。 – Blackwood
难道你不能只检查新生成的数字是否已经存在于数组中,并且如果是这样的话生成另一个?最好在'addNumbers()'的循环中执行此操作。但是它需要例如一个'While'循环(在你现有的循环中),这样你就可以继续生成新的数字,直到找到唯一的数字。 –