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 事件过程,分别调用上述过程。 展开
 我来答
数学与计算机编程
2016-12-15 · TA获得超过2160个赞
知道大有可为答主
回答量:2312
采纳率:80%
帮助的人:565万
展开全部
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
  Print
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
  Print "打印aa数组"
  Call PrintArr(aa)
  Call CreateArr(bb, 8)
  Sort bb, 8
  Print "打印bb数组"
  Call PrintArr(bb)
  Print

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式