VB编程 有VB大神帮忙填个空吗 随机产生两个数组并按由小到大的顺序排序,然后将它们合并到第三个数组中
(1)编写一个CreatArr子过程,产生有n个元素的数组,其元素是随机产生的-99到199之间的数;PublicSubCreatArr(a%(),n%)'产生数组的过程...
(1)编写一个CreatArr子过程,产生有n个元素的数组,其元素是随机产生的-99 到199之间的数;Public Sub CreatArr(a%(), n%) '产生数组的过程(2)编写一个SortArr子程序,对数组按递增次序排列;Public Sub SortArr(a%(), n%) ' 排序过程(3)编写一个MergeArr子程序,将两个数组进行合并;Public Sub MergeArr(a%(), b%(), c%()) '合并数组过程(4)编写一个PrintArr子程序,将数组显示在窗体上。Public Sub PrintArr(a%()) ' 输出数组过程(5)编写一个按钮的Click 事件过程,分别调用上述过程。
展开
展开全部
Option Base 1
Public Sub CreateArr(a%(), n%)
Randomize (Timer)
Dim i%
For i = 1 To n
a(i) = Int(Rnd * 100 + 1)
Next i
End Sub
Public Sub PrintArr(a%())
Dim i%
For i = LBound(a) To UBound(a)
If i Mod 10 = 0 Then
Print a(i)
Else
Print a(i);
End If
Next i
End Sub
Public Sub Sort(a%(), n%)
Dim i%, j%, t%
For i = 1 To n - 1
imin = i
For j = i + 1 To n
If a(j) < a(imin) Then imin = j
Next j
t = a(i)
a(i) = a(imin)
a(imin) = t
Next i
End Sub
Public Sub Merge(a%(), b%(), c%())
Dim ia%, ib%, ic%, ina%, inb%, inc%
ina = UBound(a)
inb = UBound(b)
inc = ina + inb
ia = 1: ib = 1: ic = 1
Do While ia <= ina And ib <= inb
If a(ia) < b(ib) Then
c(ic) = a(ia): ia = ia + 1
Else
c(ic) = b(ib): ib = ib + 1
End If
ic = ic + 1
Loop
Do While ia <= ina
c(ic) = a(ia): ia = ia + 1
ic = ic + 1
Loop
Do While ib <= inb
c(ic) = b(ib): ib = ib + 1
ic = ic + 1
Loop
End Sub
Private Sub Command1_Click()
Cls
Dim aa%(10), bb%(8), cc%(18)
Call CreateArr(aa, 10)
Sort aa, 10
Print "打印aa数组"
Call PrintArr(aa)
Call CreateArr(bb, 8)
Sort bb, 8
Print "打印bb数组"
Call PrintArr(bb)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询