Найти в каждой строке массива максимальный и минимальный элементы - VB
Формулировка задачи:
Дан двумерный массив размером n*m, заполненный случайными числами. Найти в каждой строке массива максимальный и минимальный элементы и поменять их с первым и последним элементом соответственно.
Листинг программы
- Dim a(1 To 50, 1 To 50) As Double
- Private Sub Command1_Click()
- Picture1.Cls: Picture2.Cls
- n = Val(Text1)
- m = Val(Text2)
- For i = 1 To n
- For j = 1 To m
- a(i, j) = Int(Rnd * 100)
- Max = a(1, 1)
- Min = a(1, 1)
- If a(i, j) > Max Then Max = a(i, j)
- If a(i, j) < Min Then Min = a(i, j)
- a(1, 1) = Max: a(n, m) = Min
- Picture1.Print a(i, j);
- Next
- Picture1.Print
- Next
- End Sub
Элементы находит, но вот с выводом что-то туго, никак не могу понять.
Листинг программы
- Dim a(1 To 50, 1 To 50) As Double
- Dim max(50) As Double
- Dim min(50) As Double
- Private Sub Command1_Click()
- Picture1.Cls: Picture2.Cls
- n = Val(Text1)
- m = Val(Text2)
- For i = 1 To n
- For j = 1 To m
- a(i, j) = Int(Rnd * 100)
- Picture1.Print a(i, j);
- Next
- Picture1.Print
- Next
- For i = 1 To n
- max(i) = a(i, 1)
- For j = 1 To m
- If max(i) < a(i, j) Then max(i) = a(i, j)
- a(i, 1) = max(i)
- Picture2.Print a(i, 1);
- Next j
- Picture2.Print
- Next i
- For i = 1 To n
- min(i) = a(i, 1)
- For j = 1 To m
- If min(i) > a(i, j) Then min(i) = a(i, j)
- a(i, 1) = min(i)
- Picture2.Print a(i, 1);
- Next j
- Picture2.Print
- Next i
- End Sub
Подскажите, пожалуйста, где ошибка. Вывод почти есть, но не совсем то, что требуется.
Листинг программы
- Dim a(1 To 50, 1 To 50) As Double
- Dim b(1 To 50, 1 To 50) As Double
- Dim q, w As Integer
- Private Sub Command1_Click()
- Picture1.Cls: Picture2.Cls
- n = Val(Text1)
- m = Val(Text2)
- For i = 1 To n
- For j = 1 To m
- a(i, j) = Int(Rnd * 100)
- Picture1.Print a(i, j);
- Next
- Picture1.Print
- Next
- For i = 1 To n
- max = a(i, 1)
- For j = 1 To m
- If max < a(i, j) Then max = a(i, j): q = i: w = j
- a(q, w) = a(i, 1): a(i, 1) = max
- Next: Next
- For i = 1 To n
- For j = 1 To m
- Picture2.Print a(i, j);
- Next j
- Picture2.Print
- Next i
- For i = 1 To n
- min = a(i, 1)
- For j = 1 To m
- If min > a(i, j) Then min = a(i, j): q = i: w = j
- a(q, w) = a(i, m): a(i, m) = min
- Next: Next
- For i = 1 To n
- For j = 1 To m
- Picture2.Print a(i, j);
- Next j
- Picture2.Print
- Next i
- End Sub
Решение задачи: «Найти в каждой строке массива максимальный и минимальный элементы»
textual
Листинг программы
- 'Option Explicit
- Dim A(1 To 50, 1 To 50) As Double
- Private Sub Command1_Click()
- Dim n As Integer, m As Integer, i As Integer, j As Integer
- Dim temp As Double, it As Integer, jt As Integer
- Picture1.Cls ': Picture2.Cls
- n = 3 'Val(Text1)
- m = 5 'Val(Text2)
- For i = 1 To n
- For j = 1 To m
- A(i, j) = Int(Rnd * 100)
- Picture1.Print vbTab; A(i, j);
- Next
- Picture1.Print
- Next
- For i = 1 To n
- temp = A(i, 1): it = i: jt = 1
- For j = 1 To m
- If A(i, j) > temp Then temp = A(i, j): it = i: jt = j
- Next
- A(it, jt) = A(i, 1): A(i, 1) = temp
- Next
- For i = 1 To n
- temp = A(i, 1): it = i: jt = 1
- For j = 1 To m
- If A(i, j) < temp Then temp = A(i, j): it = i: jt = j
- Next
- A(it, jt) = A(i, m): A(i, m) = temp
- Next
- Picture1.Print vbCrLf
- For i = 1 To n
- For j = 1 To m
- Picture1.Print vbTab; A(i, j);
- Next
- Picture1.Print
- Next
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д