В массиве найти 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
Объяснение кода листинга программы
В этом коде:
- Объявлены массивы
ученики
иоценки
. - В цикле перебираются оценки, и если текущая оценка больше первой максимальной, то первая максимальная становится третьей, вторая — второй, а текущая оценка становится первой. Если текущая оценка больше второй максимальной, то вторая максимальная становится третьей, а текущая оценка становится второй. Если текущая оценка больше третьей максимальной, то третья максимальная становится равной текущей оценке.
- После цикла выводятся все три максимальные оценки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д