我对平均输出发表了评论,因为我不断收到有关该错误消息的错误消息。 我一直在说:
最大值:33
最低值:33
我做错了什么?
Option Explicit On
Option Strict On
Module MinMax
Sub Main()
' Declare a named constant for array size here
Const MAX_NUMS As Integer = 10
' Declare array here
Dim numbers() As Integer = {33, 12, -6, 1001, 57, -1, 999, 365, 921, 724}
'Dim num1 As Integer
'Dim num2 As Integer
' Use this integer variable as your loop index
Dim loopIndex As Integer = 0
' Use this variable to store the number input by user
Dim value As Integer
' String version of number input by user
Dim valueString As String
' Use these variables to store the minimim and maximum values
Dim min As Integer
Dim max As Integer
' Use these variables to store the total and the average
Dim total As Double
Dim average As Double
' Write a loop to get values from user and assign to array
For loopIndex = 0 To MAX_NUMS - 1
valueString = InputBox$("Enter a value: ")
value = Convert.ToInt32(valueString)
' Assign value to array
'num1 = loopIndex + 1
'num2 = loopIndex - 1
Next loopIndex
' Assign the first element in the array to be the minimum and the maximum
min = numbers(0)
max = numbers(0)
' Start out your total with the value of the first element in the array
total = numbers(0)
' Write a loop here to access array values starting with numbers(1)
'For loopIndex = 0 To MAX_NUMS - 1
' loopIndex(0) + MAX_NUMS = max
' loopIndex(0) - MAX_NUMS = min
' Next loopIndex
' Within the loop test for minimum and maximum values
' Also accumulate a total of all values
' Calculate the average of the 10 values
average = loopIndex / MAX_NUMS
' Print the values stored in the numbers array
' Print the maximum value, minimum value, and average
System.Console.WriteLine("Maximum value: " & max)
System.Console.WriteLine("Minimum value: " & min)
' System.Comsole.WriteLine("Average = " & average)
End Sub
End Module
答案 0 :(得分:2)
删除不影响输出的代码,请留下:
Option Explicit On
Option Strict On
Module MinMax
Sub Main()
Dim numbers() As Integer = {33, 12, -6, 1001, 57, -1, 999, 365, 921, 724}
Dim min As Integer
Dim max As Integer
min = numbers(0)
max = numbers(0)
System.Console.WriteLine("Maximum value: " & max)
System.Console.WriteLine("Minimum value: " & min)
End Sub
End Module
基本上,你是:
在所有其他代码中,您不会修改数组或输出的两个整数。
答案 1 :(得分:2)
你的代码很奇怪。你有一个常量初始化的数组,但你似乎希望用户输入数组值,如果是这样的话,你应该像这样修改第一个循环
For loopIndex = 0 To MAX_NUMS - 1
valueString = InputBox$("Enter a value: ")
value = Convert.ToInt32(valueString)
' Assign value to array
numbers(loopIndex) = value
Next loopIndex
接下来你想获得min,max和avg数字,这部分代码很好:
min = numbers(0)
max = numbers(0)
' Start out your total with the value of the first element in the array
total = numbers(0)
然后你评论了应该做实际工作的循环。你可以像这样写
' We start loop with index 1 since index 0 is already accounted for
For loopIndex = 1 To MAX_NUMS - 1
If numbers(loopIndex) < min Then min = numbers(loopIndex)
If numbers(loopIndex) > max Then max = numbers(loopIndex)
' accrue total value
total = total + numbers(loopIndex)
Next loopIndex
' After the loop ends, the minimum value and the maximum value will be correctly
' placed in min and max respectively
' Now compute average
average = total / MAX_NUMs
希望这很清楚。祝你好运!