Private Sub CommandButton1_Click()    Dim ran As New RandomHelper(1, 100)    TextBox1.Value = ran.Next    TextBox2.Value = ran.Next    TextBox3.Value = ran.Next    TextBox4.Value = ran.Next    TextBox5.Value = ran.NextEnd SubClass RandomHelper    Protected nums As List(Of Integer)    Protected min, max As Integer    Public Sub New(min As Integer, max As Integer)        Me.min = min        Me.max = max        Reset()    End Sub    Public Function [Next]() As Integer        Dim tmp As Integer = Int(Rnd() * nums.Count)        Dim value As Integer = nums(tmp)        nums.RemoveAt(tmp)        Return value    End Function    Public Sub Reset()        nums = New List(Of Integer)        For i = min To max            nums.Add(i)        Next    End SubEnd Class 更多追问追答 追问 非常感谢!就是ppt里显示这个... 追答 不好意思,之前没有注意到你用的是vb6,改用下面的代码:Private Sub CommandButton1_Click()    Dim a(4) As Integer    For i = 0 To 4S:      a(i) = Int(Rnd * 100) + 1        For j = 0 To i - 1            If a(i) = a(j) Then GoTo S        Next    Next    TextBox1.value = a(0)    TextBox2.value = a(1)    TextBox3.value = a(2)    TextBox4.value = a(3)    TextBox5.value = a(4)End Sub 追问 感谢大神! 本回答被提问者采纳

fghfhrtrtkj

ppt的VB窗口,1到100,类似抽奖,一次产生五个不同随机数,第二次不出现已出现过的的数字,代码该怎么改 第1张

Private Sub Command1_Click()Dim num(6) As IntegerDim i As Integer, j As IntegerDim tmp As IntegerRandomize '防止每次生出随机数一样For i = 0 To 5num(i) = Int(Rnd * 53) + 1NextPrintNum "新生成的6个随机数为:", num()For i = 0 To 5For j = 0 To 5If num(j) < num(j + 1) Thentmp = num(j)num(j) = num(j + 1)num(j + 1) = tmpEnd IfNextNextPrintNum "排序后的6个随机数为:", num()End Sub 本回答由网友推荐

Private Sub Command1_Click()Text1.Text = ""Dim A(1 To 20)For I = 1 To 20    Randomize: Randomize    A(I) = Int(Rnd * 90 + 10)Next I'下面对数组排序For I = 1 To 19    For J = 1 To 20 - I        If A(J) > A(J + 1) Then            XX = A(J)            A(J) = A(J + 1)            A(J + 1) = XX        End If    Next JNext I'下面判断是否有重复数据,有后面数据+1For I = 1 To 19    For J = 1 To 20 - I        If A(J) = A(J + 1) Then            A(J + 1) = A(J + 1) + 1        End If    Next JNext IFor I = 1 To 20    Text1.Text = Text1.Text & A(I) & Space(4)Next IEnd Sub

最好再加一个Randomize,防止每次运行产生相同随机序列。

要判断

先把Text1的MultiLine属性设为True,这样文本框才能进行换行Private Sub Command1_Click() Text1 = "" '清空Text1中的现有文本 Dim score(1 To 20) As Integer, i As Integer, j As Integer For i = 1 To 20 '用随机函数给数组score()赋100以内的值 score(i) = Int(Rnd * 100) Next i For i = 20 To 2 Step -1 '用冒泡排序法对已赋值的数组进行排序 For j = 1 To i - 1 If score(j) > score(j + 1) Then t = score(j) score(j) = score(j + 1) score(j + 1) = t End If Next j Next i For i = 1 To 20 '在文本框中输出排好序的数组 Text1.Text = Text1.Text & Space(3) & score(i) If i Mod 5 = 0 Then '输出五后个换行 Text1.Text = Text1.Text & Chr(13) + Chr(10) End If Next iEnd Sub

下载附件或窗口放以下控件    List1    Option1        Caption = "最小值"    Option2        Caption = "最大值"    Text1        Text = ""    Command1        Caption = "生成"查口代码粘帖如下:Option ExplicitPrivate Const ValueLimit As Long = 100  ' 生成的最大数字Private Const ArraySize As Long = 9   ' 这里改变数组大小,必须小于等于可生成的最大数字Private m_Values(ArraySize)Private Sub CreateValues()    Call Randomize        Dim i As Long    Dim j As Long    For i = 0 To ArraySizeContinueFori:        m_Values(i) = Int(Rnd * (ValueLimit + 1))        For j = 0 To i - 1            If m_Values(i) = m_Values(j) Then                GoTo ContinueFori            End If        Next    NextEnd SubPrivate Function IndexOf(IsMax As Boolean) As Long    Dim Index As Long    Dim i As Long        Index = 0    For i = 0 To ArraySize        If IsMax Then            If m_Values(i) > m_Values(Index) Then                Index = i            End If        Else            If m_Values(i) < m_Values(Index) Then                Index = i            End If        End If    Next    IndexOf = IndexEnd FunctionPrivate Sub Form_Load()           Call Command1_ClickEnd SubPrivate Sub Command1_Click()    Dim i As Long           Call CreateValues    List1.Clear    For i = 0 To ArraySize        List1.AddItem m_Values(i)    Next        Call Option2_ClickEnd SubPrivate Sub Option1_Click()    Text1.Text = m_Values(IndexOf(Option2.Value))End SubPrivate Sub Option2_Click()    Text1.Text = m_Values(IndexOf(Option2.Value))End Sub 本回答由网友推荐

ppt的VB窗口,1到100,类似抽奖,一次产生五个不同随机数,第二次不出现已出现过的的数字,代码该怎么改 第2张

你这问题不太清楚,随机数的个数是多少?假设为n.自己程序中改下n哈,必须是个常量dim a(1 to n) as integerfor i=1 to n a(i)=int(rnd*101) for j=1 to i-1 if a(j)=a(i) then i=i-1 : exit for next jnext i用了两重循环,for i 产生n个随机数,for j循环,判断第i项数据前面i-1项中有没有和a(i)相同的,如果相同,i=i-1,让i重新产生一次随机数

先定义数组变量y(1~100)randomrizefor x = 1 to 100 y(x)=int(rnd()*101)next xtext1=max(y)

Private Sub Command1_Click() Dim a(9) For i = 0 To 9RE: a(i) = Int(Rnd * 100) + 1 If i > 0 Then For j = 0 To i - 1 If a(i) = a(j) Then GoTo RE Next End If Next For i = 0 To 9 Print Str(a(i)) Next End Sub 追问 Go To 函数有什么作用啊?能解释一下 RE 后面的程序段嘛,谢了 追答 goto是跳转到我定义的RE处,即每生成一个随机数都与之前生成的对比,如果相同,则跳到RE处重新生成,重新比较,如果不相同,则往下执行