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

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

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

Дан список учеников класса, содержащий фамилии и средний балл. Вывести на печать фамилии трех лучших по среднему баллу учеников. В поиске искала, там не нашлось решения.

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

textual
Листинг программы
CONST u = 5 'учеников без нулевого, т.е. всего u+1
DIM y(u) AS STRING 'ученики
y(0) = "Иванов"
y(1) = "Петров"
y(2) = "Сидоров"
y(3) = "Козлов"
y(4) = "Баранов"
y(5) = "ПупкинЯЯ"
DIM o(u) AS SINGLE 'оценки(усреднённые)
o(0) = 1.1
o(1) = 2.2
o(2) = 3.3
o(3) = 4.4
o(4) = 5.5
o(5) = 0#
DIM i AS INTEGER 'счётчик
DIM Max1 AS SINGLE
DIM Max2 AS SINGLE
DIM Max3 AS SINGLE
FOR i = 0 TO u
  IF o(i) > Max1 THEN
    Max3 = Max2
    Max2 = Max1
    Max1 = o(i%)
  ELSEIF o(i%) > Max2 THEN
    Max3 = Max2
    Max2 = o(i%)
  ELSEIF o(i%) > Max3 THEN
    Max3 = o(i%)
  END IF
NEXT i%
PRINT Max1
PRINT Max2
PRINT Max3

Объяснение кода листинга программы

В этом коде:

  1. Объявлены массивы ученики и оценки.
  2. В цикле перебираются оценки, и если текущая оценка больше первой максимальной, то первая максимальная становится третьей, вторая — второй, а текущая оценка становится первой. Если текущая оценка больше второй максимальной, то вторая максимальная становится третьей, а текущая оценка становится второй. Если текущая оценка больше третьей максимальной, то третья максимальная становится равной текущей оценке.
  3. После цикла выводятся все три максимальные оценки.

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


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

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

14   голосов , оценка 4.214 из 5
Похожие ответы