四时宝库

程序员的知识宝库

VB编程:从a数组中挑选非0的元素放入新的数组b

设a是一个具有10个元素的一维整型数组,下标从1到10,每个元素的值由用户输入,要求把数组a中的非0数据按照原来的次序存入数组b中,并输出数组b各元素的值。

错误(不严谨)写法,这样会导致输出数组b元素的值可能会存在0的情况,题目含义要求的是数组b是专门用来存放非0数据的,下面两部分代码分别是不严谨写法和正确写法:

Private Sub Command1_Click()  ’单击事件过程开始
    Dim a(1 To 10) As Long, b(1 to 10) As Long  ‘声明定长数组a、数组b
    For i = 1 To 10   ‘循环10次给数组a的10个元素赋值
        a(i) = Val(InputBox("请输入第" & i & "个元素的值:")) ’数组a中10个元素的值由用户输入
        If a(i) <> 0 Then  ‘ 如果数组a中某个元素的值不为0
            b(i) = a(i)   ’将数组a中不等0的元素的值赋值给数组b中对应的元素
            print b(i)
        End If  ‘if判断语句结束
    Next
End Sub
Private Sub Command1_Click()  ’单击事件过程开始
    Dim a(1 To 10) As Long, b() As Long  ‘声明定长数组a和动态数组b
    Dim i As Long, count As Long ’声明变量i和计数器count  你不想声明也没关系但是需要给计数器count赋初值0
    For i = 1 To 10   ‘循环10次给数组a的10个元素赋值
        a(i) = Val(InputBox("请输入第" & i & "个元素的值:")) ’数组a中10个元素的值由用户输入
        If a(i) <> 0 Then  ‘ 如果数组a中某个元素的值不为0
            count = count + 1  ’计数器+1
            ReDim Preserve b(1 To count)  ‘给动态数组b开辟存储空间(不清空数组b中原先元素的值)
            b(count) = a(i) ’将数组a中不等0的元素的值赋值给数组b中对应的元素
        End If  ‘if判断语句结束
    Next
    For i = 1 To count  
        Print b(i)  ’通过for循环将数组b中的元素依次输出
    Next
End Sub

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接