VB编程题求完整过程

如图... 如图 展开
 我来答
windblast
2018-05-09 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13624
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

代码补充如下:

Private Sub Command1_Click()
    Dim b()
    Dim i As Integer
    
    b = Array(16, 19, 19, 32, 50, 50, 50, 78, 80, 80, 95)
    For i = 0 To UBound(b)
        Text1.Text = Text1.Text & b(i) & Space(2)
    Next
    
    Call arrange(b)            '补充代码
    For i = 0 To UBound(b)     '补充代码
        Text2.Text = Text2.Text & b(i) & Space(2)
    Next
End Sub

Sub arrange(a())
    Dim m As Integer, n As Integer, k As Integer
    
    m = UBound(a)
    n = m
    
    Do While m > 0
        
        If a(m) = a(m - 1) Then
            For k = m To n   '补充代码
                a(k - 1) = a(k)
            Next k
            n = n - 1 '补充代码
        End If
        
        m = m - 1 '补充代码
    Loop
    ReDim Preserve a(n)
End Sub

运行结果截图:

代码思路:

代码的去除重复元素,是通过从数组末尾开始,每次将当前元素与前一个元素,两个相邻元素进行比较,如果相同,就将当前元素去除(覆盖),并将后面的元素提前1个序号,依次类推,直到数组的开始,将数组重新修改大小(去掉重复)。

执行过程举例:

初始:

当 m = 9时,a(9)=a(8),相同,需要将 a(9) 去掉(覆盖),将 a(9) 后面的元素统一提前一个序号: 

其它的依次类推。

tianqing20wen

2018-05-09 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5154万
展开全部

call arrange(b)

for i = 0 to ubound(b)

for k = m to ubound(a)

n=n-1

m=m+1

追问
您好,我运行之后,提示下标越界。请问该如何修改呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
grace23450
2018-05-09 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7081
采纳率:77%
帮助的人:2341万
展开全部
不就是个排序吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式