Private Sub Command1_Click()
Dim a(0 To 4) As Integer
Randomize
For i = 0 To UBound(a)
a [i] = Int((12 * Rnd) + 1)
Next i
End Sub
这段代码错在哪里?
提示---------------------------
Microsoft Visual Basic
---------------------------
编译错误:缺少子程序、函数或属性
---------------------------
确定   帮助   
---------------------------

解决方案 »

  1.   

    a(i) = Int((12 * Rnd) + 1) 
      

  2.   

    Private Sub Command1_Click()
    Dim a(0 To 4) As Integer
    Randomize
    For i = 0 To UBound(a)
    a(i) = Int((12 * Rnd) + 1)
    Next i
    End Sub这样对了
    可是怎么让产生的4个随机数不重复啊?
      

  3.   

    a[i]是C的写法,VB中要用a(i).  
      

  4.   

    Private Sub Command1_Click() 
    Dim a(0 To 4) As Integer 
    For i = 0 To UBound(a) 
    Randomize '放在这里
    a (i) = Int((12 * Rnd) + 1) 
    Next i 
    End Sub 
      

  5.   

    Private Sub Command1_Click() 
    Dim a(0 To 4) As Integer 
    For i = 0 To UBound(a) 
    Randomize Timer '这样写就对了
    a (i) = Int((12 * Rnd) + 1) 
    Next i 
    End Sub 
      

  6.   

    Private Sub Command1_Click()
    Dim strRet     As String
    Dim a(0 To 3) As Integer
    Dim f As Integer
    f = 0
    strRet = ""
    Randomize Timer
    For i = 0 To UBound(a)
    l: a(i) = Int((12 * Rnd) + 1)
      For k = 0 To i - 1
        If i - 1 >= 0 Then
          If a(i) = a(k) Then f = 1
        End If
      Next k
      If f = 1 Then GoTo l
    Next i
    For j = 0 To UBound(a)
    If strRet <> "" Then strRet = strRet & ","
    strRet = strRet & a(j)
    Next j
    MsgBox strRet
    End Sub为什么这段代码执行几次就出现死机的情况了呢?好像进入无限循环了,谁知道?
      

  7.   

    Private Sub Command1_Click() 
    Dim a(0 To 4) As Integer 
    For i = 0 To UBound(a) 
    Randomize Timer '这样写就对了
    a (i) = Int((12 * Rnd) + 1) 
    Next i 
    End Sub这样也会重复
      

  8.   

    Private Sub Command1_Click() 
    Dim a(0 To 3) As Integer 
    For i = 0 To UBound(a) 
    Randomize Timer 
    a (i) = Int((12 * Rnd) + 1) 
    Next i 
    End Sub 怎样写才能使产生的4个随机数不重复啊?说明Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。?
    这句话怎么理解啊?
      

  9.   

    从1到12这个范围产生4个随机数,要求不能重复。
    Private Sub Command1_Click() 
    Dim strRet    As String 
    Dim a(0 To 3) As Integer 
    Dim f As Integer 
    f = 0 
    strRet = "" 
    Randomize Timer 
    For i = 0 To UBound(a) 
    l: a(i) = Int((12 * Rnd) + 1) 
      For k = 0 To i - 1 
        If i - 1 >= 0 Then 
          If a(i) = a(k) Then f = 1 
        End If 
      Next k 
      If f = 1 Then GoTo l 
    Next i 
    For j = 0 To UBound(a) 
    If strRet <> "" Then strRet = strRet & "," 
    strRet = strRet & a(j) 
    Next j 
    MsgBox strRet 
    End Sub 
    我用了这段代码,为什么这段代码执行2次就出现死机的情况了呢?(前两个的结果是正常不重复的啊!第三次就不行了)好像进入无限循环了,谁知道?