Вывести массив К до и после сортировки. Под каждым столбцом вывести максимальный элемент матрицы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | Sub test() Dim K( 1 To 5 , 1 To 6 ) For i = 1 To 5 For j = 1 To 6 K(i, j) = Int(Rnd * 50 ) Next j Next i Dim outputStr As String outputStr = "Arr1=" For i = 1 To UBound(K, 1 ) For j = 1 To UBound(K, 2 ) outputStr = outputStr & vbTab & K(i, j) Next j outputStr = outputStr & vbCrLf Next i Dim CountOfSubst CountOfSubst = 0 For i = 1 To UBound(K, 2 ) CountOfSubst = CountOfSubst + sort(K, i) Next i Dim maximums() ReDim maximums( 1 To UBound(K, 2 )) outputStr = outputStr & "Max:" For i = 1 To UBound(K, 2 ) maximums(i) = K( 1 , i) For j = 1 To UBound(K, 1 ) If maximums(i) < K(j, i) Then maximums(i) = K(j, i) Next j outputStr = outputStr & vbTab & maximums(i) Next outputStr = outputStr & vbCrLf & vbCrLf & "Arr2=" For i = 1 To UBound(K, 1 ) For j = 1 To UBound(K, 2 ) outputStr = outputStr & vbTab & K(i, j) Next j outputStr = outputStr & vbCrLf Next i MsgBox outputStr End Sub Function sort(ByRef Arr, C) As Integer 'return - number of substitution 'Arr - array 'C - column for sort sort = 0 cols = UBound(Arr, 1 ) 'column' s If cols >= C Then For i = 1 To cols + 1 For j = cols To i + 1 Step - 1 If Arr(j - 1 , C) < Arr(j, C) Then tmp = Arr(j - 1 , C) Arr(j - 1 , C) = Arr(j, C) Arr(j, C) = tmp sort = sort + 1 End If Next j Next i End If End Function |