我一直试图从数组中获得正确的结果。我已经尝试了我能想到的一切。我是VB.Net和编程的新手。
我在usb上有一个文件,我从中获取数组。 txtfile设置为给我年份和与该年相关的数字。 例如。 21年 1 19年 6 18年级 18 17年 12 等等。
我正在努力寻找数量最多的年份并将其显示在标签中。
我得到的是21年级,因为它是最高的,但实际上我需要的是相关数量最多的年份,在这种情况下,它将是第16年,其中27作为相关数字。
以下是我认为与之相关的代码部分。我已经写过要找到它,但我第一年才到达第21年。
第一行或多年是_strYears(_intSizeOfArray) as string
与年份相关的第二行或数字是_strNumberOfHurricanes(_intSizeOfArray as integer
选项必须为分配
Dim intAverage As Double
Dim intYear As Integer
Dim intMostYears As Integer = 0
' Calculate the Statistics and display the results
For intIndex As Integer = 0 To _intSizeOfArray
If intYear < _intNumberOfHurricans(intIndex) Then
intYear = _intNumberOfHurricans(intIndex)
End If
intAverage = intAverage + _intNumberOfHurricans(intIndex)
Next
intAverage = intAverage / _intNumberOfHurricans.Length
For intLoopCounter = 0 To _intSizeOfArray
If _strYears(intMostYears) < _strYears(intLoopCounter) Then
intMostYears = intLoopCounter
End If
Next
' Display the statistics for the Storm Average in the selected Year
' and the most active year within the range of year.
lblNumberOfHurricanes.Text = "The Number of Hurricanes in the " &
_strYears(intChoiceSelected) & " is " & _intNumberOfHurricans(intChoiceSelected).ToString() & "."
lblAvergeNumberHurricanes.Text = "The Average Number of Storms was " & FormatNumber(intAverage, 1) & " Hurricanes."
lblMostStorms.Text = "The" & _strYears(intMostYears) & " with " & intYear & " Had The Most Storms Between " &
(_strYears(20) & " And " & (_strYears(0)))
我得到的结果是前两个标签是正确的,最后一个标签是显示21年,应该是16,27是正确的,21年和1年是正确的。
请在1个半小时内完成这项任务,我一整天都试着这个。如果有人能让我知道这是错误的地方。我真的很感激。
答案 0 :(得分:1)
这3行将完成您在上面尝试的大部分内容。由于这是一项任务,我不确定你的老师是否会允许你使用Linq,但由于你没有指明这样的东西,这应该会为你的未来提供一些启示,如果没有其他的话:
Imports System.Linq
Dim intAverage As Double = _intNumberOfHurricans.Average()
Dim intMostYears As Integer = _intNumberOfHurricans.IndexOf( _intNumberOfHurricans.Max())
现在,您可以像标记一样在标签中显示此信息。