Меняя строки и столбцы местами, добиться того, чтобы наибольший элемент был в верхнем левом углу - 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