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