09月22日, 2014 166次
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
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 本回答由网友推荐
你这问题不太清楚,随机数的个数是多少?假设为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处重新生成,重新比较,如果不相同,则往下执行