在数组

时间:2016-05-02 03:49:53

标签: vb.net visual-studio-2015

我一直试图从数组中获得正确的结果。我已经尝试了我能想到的一切。我是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个半小时内完成这项任务,我一整天都试着这个。如果有人能让我知道这是错误的地方。我真的很感激。

1 个答案:

答案 0 :(得分:1)

这3行将完成您在上面尝试的大部分内容。由于这是一项任务,我不确定你的老师是否会允许你使用Linq,但由于你没有指明这样的东西,这应该会为你的未来提供一些启示,如果没有其他的话:

Imports System.Linq

Dim intAverage As Double = _intNumberOfHurricans.Average()
Dim intMostYears As Integer = _intNumberOfHurricans.IndexOf( _intNumberOfHurricans.Max())

现在,您可以像标记一样在标签中显示此信息。