В массиве найти 3 максимальных числа и вывести их по убыванию - VB

Узнай цену своей работы

Формулировка задачи:

Задача:

Требуется определить победителей среди участников соревнования, занявших первые три призовых места по наибольшему количеству очков. Количество участников соревнования не превышает 50 человек. Соревнование построено таким образом, что никакие два или несколько участников не могут набрать одинаковое количество очков. Входная информация представлена в виде массива положительных целочисленных очков участников. В выходной массив требуется занести индексы очков победителей соревнования из исходного массива в порядке возрастания номера их места (первое, второе, третье). Мне хотя бы просто описание как ее нужно решать

Решение задачи: «В массиве найти 3 максимальных числа и вывести их по убыванию»

textual
Листинг программы
  1. Sub sort(A() As Integer, n As Integer)
  2.     If A(n + 1) < A(n) Then Exit Sub
  3.     c% = A(n + 1)
  4.     For i% = n% + 1 To 1 Step -1
  5.         If A(i%) > A(n% + 1) Then Exit For
  6.     Next i%
  7.     For j% = n% + 1 To i% + 1 Step -1
  8.         If j% = 1 Then Exit For
  9.         A(j%) = A(j% - 1)
  10.     Next j%
  11.     A(i% + 1) = c%
  12. End Sub
  13.  
  14. Sub max_3a(A() As Integer, B() As Integer, n As Integer)
  15.     For i% = 1 To UBound(A, 1)
  16.         B(n + 1) = A(i%)
  17.         sort B(), n%
  18.     Next i%
  19. End Sub
  20.  
  21.  
  22. '::: Проверка:
  23.  
  24. Sub Test()
  25.  
  26. Dim A(1 To 10) As Integer
  27. Dim B(1 To 10) As Integer
  28.  
  29.     A(6) = 6
  30.     A(9) = 12
  31.     A(5) = 5
  32.     A(2) = 2
  33.     A(8) = 11
  34.     A(3) = 3
  35.     A(1) = 1
  36.     A(4) = 4
  37.     A(7) = 9
  38.     A(10) = 13
  39.  
  40.     n%=3
  41.    
  42.     max_3a A(), B(),n%
  43.  
  44.     For i% = 1 To 3
  45.         Debug.Print B(i%)
  46.     Next i%
  47.    
  48. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы