Меняя строки и столбцы местами, добиться того, чтобы наибольший элемент был в верхнем левом углу - VB
Формулировка задачи:
Дошел я до этого, а дальше не получается
Листинг программы
- Sub Main()
- Dim m, n As Integer
- Randomize()
- Dim maxi, maxj As Integer
- Console.WriteLine("Введите количество строк")
- m = Console.ReadLine
- Console.WriteLine("Введите количество столбцов")
- n = Console.ReadLine
- Dim a(m, n) As Integer
- Dim i As Integer, j As Integer
- Dim s As String = ""
- Dim z As String = ""
- Console.WriteLine("Ваша матрица")
- For i = 1 To m
- For j = 1 To n
- a(i, j) = (Rnd() * 9) + 1
- s = s & a(i, j) & vbTab
- Next j
- Console.WriteLine(s)
- s = ""
- Next i
- Console.ReadLine()
- maxi = 1
- maxj = 1
- For i = 1 To m
- For j = 1 To n
- If a(i, j) > a(maxi, maxj) Then maxi = i : maxj = j
- Next
- Next
- Console.WriteLine("Максимальный элемент :" & a(maxi, maxj))
Решение задачи: «Меняя строки и столбцы местами, добиться того, чтобы наибольший элемент был в верхнем левом углу»
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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д