从键盘上输入若干个正整数(如果遇到负数重
新输入),如果遇到0停止输入,然后输出
(1)输入的所有正整数的平均值;
(2)高于平均值的正整数的个数
请编写程序实现,并将程序上交。
说明:正整数的个数必须在输入过程中统计出
来
使用动态数组完成。
程序如下:
Option Explicit
Sub Main()
Dim nums() As Integer ' 声明动态数组
Dim count As Integer ' 统计正整数的个数
Dim sum As Long ' 所有正整数的和
Dim avg As Double ' 平均值
Dim aboveAvgCount As Integer ' 高于平均值的正整数的个数
Dim input1 As Integer ' 输入的数值
Dim i
count = 0
sum = 0
aboveAvgCount = 0
Do
input1 = InputBox("请输入一个正整数:")
If input1 > 0 Then
count = count + 1
sum = sum + input1
' 动态扩展数组并存储输入的数值
ReDim Preserve nums(1 To count)
nums(count) = input1
End If
Loop While input1 <> 0 ' 当输入0时退出循环
If count > 0 Then
avg = sum / count
For i = 1 To count
If nums(i) > avg Then
aboveAvgCount = aboveAvgCount + 1
End If
Next
' 输出结果
MsgBox "所有正整数的平均值为:" & avg & vbCrLf & _
"高于平均值的正整数的个数为:" & aboveAvgCount
Else
MsgBox "未输入任何正整数!"
End If
End Sub