Среднее арифметическое в строке с отрицательным элементом - VBA
Формулировка задачи:
Всем привет
Вроде почти все допилил, а на выходе какая-то ересь, подскажите, что не так
Условие задачи: дана матрица Z(5,4).
Если в строке есть отрицательный элемент, найти среднее арифметическое ненулевых элементов этой строки и вывести эти значения в отдельный массив.
Что есть: исходная матрица и массив с переопределением размерности в ходе программы.
Я так понял, выполняя код, программа в каждый элемент массива записывает среднее арифметическое элементов всей матрицы.
Решение задачи: «Среднее арифметическое в строке с отрицательным элементом»
textual
Листинг программы
Sub test() Dim Z As Variant Dim isExist As Boolean Dim result() As Variant Dim cnt As Integer Dim srZ As Variant Dim n As Integer ReDim Z(1 To 5, 1 To 4) For i = 1 To 5 For j = 1 To 4 Randomize Z(i, j) = Int(20 * Rnd - 10) Next j Next i Range(Range("A1"), Range("A1").Offset(UBound(Z) - 1, UBound(Z, 2) - 1)) = Z For i = 1 To 5 isExist = False cnt = 0 srZ = 0 For j = 1 To 4 If Z(i, j) <> 0 Then srZ = srZ + Z(i, j) cnt = cnt + 1 End If If Z(i, j) < 0 Then isExist = True End If Next j If isExist Then n = n + 1 ReDim Preserve result(1 To n) result(n) = srZ / cnt End If Next i Range(Range("F1"), Range("F1").Offset(UBound(result) - 1, 0)) = WorksheetFunction.Transpose(result) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д