【发布时间】:2017-03-19 21:12:56
【问题描述】:
此 Visual Basic 程序会提示用户 以交互方式输入 4 个整数值,程序 存储在一个数组中。然后它应该找到最小值和最大值 存储在数组中的值,以及 4 个值的平均值。 代码是
Option Explicit On
Option Strict On
Module BattingAverage
Sub Main()
Const MAX_AVERAGES AS Integer = 3
Dim Averages(MAX_AVERAGES -1) as Double
Dim LoopIndex As Integer
Dim BattingAverage As Double
Dim BattingString As String
Dim Min As Double
Dim Max As Double
Dim Total As Double
Dim Average As Double
For LoopIndex = 0 To MAX_AVERAGES - 1
BattingString = InputBox$("Enter a batting average: ")
BattingAverage = Convert.ToDouble(BattingString)
'Assigning a value to Array
Averages(LoopIndex) += BattingAverage
Next LoopIndex
Min = Averages(0)
Max = Averages(0)
Total = Averages(0)
For LoopIndex = 1 To Averages.length -1
If Averages(LoopIndex) < Min then
Min = Averages(LoopIndex)
Else If Averages(LoopIndex) > Max then
Max = Averages(LoopIndex)
end if
Total += Averages(LoopIndex)
'
Next LoopIndex
Average = Total / MAX_AVERAGES
System.Console.WriteLine("Batting Averages : " & Averages(LoopIndex))
System.Console.WriteLine("Maximum value : " &Max)
System.Console.WriteLine("Minimum value : " &Min)
System.Console.WriteLine("Average : " &Average)
End Sub
End Module
我运行了代码,但它抛出了这个 indexoutofbound 异常
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at BattingAverage.Main()
我不确定如何修复此代码。我也认为我的代码(Averages(LoopIndex) += BattingAverage)给数组赋值是不对的。请帮忙
【问题讨论】:
-
+=增加当前值,=分配一个新值。