随机产生10个100以内的正整数,然后调用过程,在文本框中输入一个数值,把输入的数值与随机产生的10个数字相比较,然后进行插入,最后显示出来。
比如随机产生数字:1 3 5 2 7 9 15 6 4 8 。现在我输入的数字是 10 ,显示出来的就是: 1 2 3 4 5 6 7 8 9 10 15.
我是这样做的,但提示数维数组已定义。下面的代码哪里是需要改的?
Option Base 1
Dim a(1 To 10) As Variant, n As Integer, k As Integer, i As Integer
Public Sub insert(ByVal j As Integer)
n = UBound(a)
For i = 1 To 10
    If a(i) > j Then
        Exit For
    End If
Next i
k = i
ReDim Preserve a(n + 1)
For i = n To k Step -1
    a(i + 1) = a(i)
Next i
a(k) = j
For i = 1 To n + 1
    a(i) = Int(Rnd * 100)
    Picture1.Print a(i)
Next i
End Sub
Private Sub Command1_Click()
Call insert(j)
End Sub

解决方案 »

  1.   

    Option Base 1
    Dim a(1 To 10) As Variant, n As Integer, k As Integer, i As Integer
    Public Sub insert(ByVal j As Integer)
    n = UBound(a)
    For i = 1 To 10
        If a(i) > j Then
            Exit For
        End If
    Next i
    k = iFor i = n To k Step -1
        a(i + 1) = a(i)
    Next ia(k - 1) = j
    For i = 1 To n + 1
    If i < 11 Then
        a(i) = Int(Rnd * 100)
        
        Picture1.Print a(i)
        End If
       
    Next iEnd Sub
    Private Sub Command1_Click()Call insert(4)End Sub
    '仅供参考
      

  2.   

    Dim a(1 To 10) As Variant, n As Integer, k As Integer, i As Integer
    和ReDim Preserve a(n + 1)是矛盾的,前一句已定义数组a的上下界,已不是可变数组了,不能ReDim重新定义,另i 不能大于10