Рассчитать среднее для каждой серии чисел из текстового файла

В настоящее время мой код извлекает данные из txt-файла и помещает список чисел в список. Теперь мне нужно отредактировать программу, чтобы вычислить среднее значение каждой серии чисел, при этом каждая серия должна быть отделена от 0. Мне нужно сохранить данные в массив и просмотреть их, чтобы выполнить предварительные вычисления, но я не уверен, как разделите каждую серию чисел, чтобы получить среднее значение каждой серии, а не только среднее значение всего набора данных.

Вот список номеров, которые у меня есть: 10 15 20 20 0 1 2 3 4 5 6 7 8 0 10 20 30 40 50 60 0 9 9 9 9 9 9 9 9 9 0 5 8 9 5 3 80 2 23 65 0

И вот код, который у меня есть, который в настоящее время просто извлекает данные из файла и помещает их как есть в список:

Public Class Form1
Dim strData As String

Private Sub ReadButton_Click(sender As Object, e As EventArgs) Handles ReadButton.Click
    Dim strReader As System.IO.StreamReader

    Try
        strReader = New System.IO.StreamReader("NumberData.txt")
        strData = strReader.ReadLine
        Do While Not strReader.EndOfStream
            DataListBox.Items.Add(strData)
            strData = strReader.ReadLine
        Loop
        DataListBox.Items.Add(strData)
        strReader.Close()
    Catch ex As Exception
        DataListBox.Items.Add(ex.Message)
    End Try

End Sub

Конечный класс

Я ценю помощь, я программировал так много в последнее время, что мой мозг просто не может понять это самостоятельно!

1 ответ

Не нужен массив; просто используйте 2 переменные: одну, которая увеличивается для каждого прочитанного элемента, и одну, чтобы держать сумму до сих пор. Когда вы читаете каждое значение, сначала убедитесь, что оно равно нулю; если это так, то вычислите среднее значение, разделив сумму на счетчик, и сделайте с ней что угодно (а затем очистите два ваших отслеживающих переменных); если это не так, тогда добавьте это для следующей суммы. (Если у вас нет трейлинга 0, вам придется использовать дополнительный калькулятор в последней серии.)

Другие вопросы по тегам