设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