随机产生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 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
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
'仅供参考
和ReDim Preserve a(n + 1)是矛盾的,前一句已定义数组a的上下界,已不是可变数组了,不能ReDim重新定义,另i 不能大于10