Меняя строки и столбцы местами, добиться того, чтобы наибольший элемент был в верхнем левом углу - VB
Формулировка задачи:
Дошел я до этого, а дальше не получается
Решение задачи: «Меняя строки и столбцы местами, добиться того, чтобы наибольший элемент был в верхнем левом углу»
textual
Листинг программы
Sub roman199818() Dim i%, j%, N%, M%, Max% Dim K%, R% Cells.Clear N = Int(InputBox("Введите количество строк", "Ввод данных", 4)) M = Int(InputBox("Введите количество столцов", "Ввод данных", 5)) ReDim A(1 To N, 1 To M) For i = 1 To N For j = 1 To M A(i, j) = Int((50 * Rnd) + (-25)) 'Cells(i, j) = A(i, j) Next j Next i Cells(1, 1).Resize(N, M) = A Max = A(1, 1) For i = 1 To N For j = 1 To M If A(i, j) >= Max Then Max = A(i, j) End If Next Next i Cells(N + 2, 5) = Max Cells(N + 2, 1) = " Максимальный элемент: Max = " K = 0: R = 0 For i = 1 To N For j = 1 To M If Cells(i, j) = Max Then K = i R = j End If Next j Next i Cells(N + 3, 5) = K Cells(N + 3, 1) = " Строка максимального эл-та: i = " Cells(N + 4, 5) = R Cells(N + 4, 1) = " Столбец максимального эл-та: j = " ReDim B(1 To N, 1 To M) As Integer For i = 1 To N For j = 1 To M B(i, j) = A(i, j) B(1, j) = A(K, j) B(K, j) = A(1, j) Next j Next i Worksheets("Лист1").Cells(N + 6, 1).Resize(N, M).Value = B ReDim C(1 To N, 1 To M) As Integer For i = 1 To N For j = 1 To M C(i, j) = B(i, j) C(i, 1) = B(i, R) C(i, R) = B(i, 1) Next j Next i Worksheets("Лист1").Cells(N + N + 7, 1).Resize(N, M).Value = C End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д