所谓舍弃数据,就是不做“新增一个数组元素并赋值”这件事,大概像这样: If x < 0 Then MsgBox "请重新输入!" Else ReDim Preserve a(k) a(k) = x k = k + 1 End If 顺便也展示了动态数组当中新增元素的方法,这个数组的定义如下: Dim a() As Integer 上面的k则表示数组当中的元素个数,而数组的下标范围则是从0到k-1
Private Sub Form_Click() Dim a(), b(), i As Integer, j As Integer, ave As Single, sum As Single, num As Integer i = 0 j = 0 ave = 0 num = 0 ReDim Preserve a(i) Do a(i) = Val(InputBox("输入正整数:")) If a(i) = 0 Then Exit Do sum = sum + a(i) i = i + 1 ReDim Preserve a(i) Loop ave = sum / i For i = 1 To LBound(a) + UBound(a) - 1 If a(i) > ave Then num = num + 1 i = i + 1 End If Next Print "平均数:" & ave Print "超过平均数个数:" & num End Sub
在7楼的基础上改一段代码出来: Dim a() As Integer, i As Integer, sum As Integer, ave As Single, num As Integer num = Val(InputBox("输入正整数:")) Do Until num = 0 If num < 0 Then MsgBox "请重新输入!" Else ReDim Preserve a(i) a(i) = num i = i + 1 End If num = Val(InputBox("输入正整数:")) Loop ave = sum / i num = 0 For i = 0 To UBound(a) If a(i) > ave Then num = num + 1 Next i Print "平均数:"; ave Print "超过平均数个数:"; num
Option Explicit Private Sub Command1_Click() Dim a() As Long Dim b As Long Dim i As Integer Dim j As Integer Dim sum As Double Dim avg As Double i = 1 Do b = Val(InputBox("请输入第" & i & "个正整数")) If b = 0 Then Exit Do ElseIf b < 0 Then MsgBox "输入的是负数,请重新输入!" Else ReDim Preserve a(1 To i) a(i) = b sum = sum + b i = i + 1 End If Loop If i = 1 Then Print "没有输入正整数。" Else avg = sum / (i - 1) For i = LBound(a) To UBound(a) If a(i) > avg Then j = j + 1 Next i Print "输入的正整数的平均值:" & avg Print "高于平均值的正整数的个数:" & j End If End Sub