В массиве найти 3 максимальных числа и вывести их по убыванию - VB
Формулировка задачи:
Задача:
Требуется определить победителей среди участников соревнования, занявших первые три призовых места по наибольшему количеству очков. Количество участников соревнования не превышает 50 человек. Соревнование построено таким образом, что никакие два или несколько участников не могут набрать одинаковое количество очков. Входная информация представлена в виде массива положительных целочисленных очков участников. В выходной массив требуется занести индексы очков победителей соревнования из исходного массива в порядке возрастания номера их места (первое, второе, третье). Мне хотя бы просто описание как ее нужно решатьРешение задачи: «В массиве найти 3 максимальных числа и вывести их по убыванию»
textual
Листинг программы
Sub sort(A() As Integer, n As Integer) If A(n + 1) < A(n) Then Exit Sub c% = A(n + 1) For i% = n% + 1 To 1 Step -1 If A(i%) > A(n% + 1) Then Exit For Next i% For j% = n% + 1 To i% + 1 Step -1 If j% = 1 Then Exit For A(j%) = A(j% - 1) Next j% A(i% + 1) = c% End Sub Sub max_3a(A() As Integer, B() As Integer, n As Integer) For i% = 1 To UBound(A, 1) B(n + 1) = A(i%) sort B(), n% Next i% End Sub '::: Проверка: Sub Test() Dim A(1 To 10) As Integer Dim B(1 To 10) As Integer A(6) = 6 A(9) = 12 A(5) = 5 A(2) = 2 A(8) = 11 A(3) = 3 A(1) = 1 A(4) = 4 A(7) = 9 A(10) = 13 n%=3 max_3a A(), B(),n% For i% = 1 To 3 Debug.Print B(i%) Next i% End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д