В исходном массиве найти и вывести второй максимум массива - QBasic

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

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

В исходном массиве найти и вывести второй максимум массива (элемент который в отсортированном по не возрастанию массиве стоял бы вторым).

Решение задачи: «В исходном массиве найти и вывести второй максимум массива»

textual
Листинг программы
  1. DEFINT A, I, M-N
  2. OPTION BASE 1
  3. DIM a(10)
  4. CLS
  5. RANDOMIZE TIMER
  6.  
  7. FOR i = 1 TO 10
  8.    a(i) = 20 * RND - 10
  9.    PRINT USING "###"; a(i);
  10. NEXT i
  11. PRINT
  12. m1 = a(1)
  13. m2 = m1 - 1
  14. n = 1
  15.  
  16. FOR i = 2 TO 10
  17.    IF a(1) = a(i) THEN n = n + 1
  18. NEXT i
  19.  
  20. IF n = 10 THEN
  21.    PRINT "Vse elementy massiva ravny"
  22.    GOTO 777
  23. END IF
  24.  
  25. FOR i = 2 TO 10
  26.    IF a(i) > m1 THEN
  27.       m2 = m1
  28.       m1 = a(i)
  29.    ELSEIF (a(i) > m2) AND (a(i) < m1) THEN
  30.       m2 = a(i)
  31.    END IF
  32. NEXT i
  33. PRINT "  MAX2 = "; m2
  34. 777
  35. END

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

  1. Объявлены переменные: A, I, M-N, m1, m2, n, a(10).
  2. Задается размер массива a(10) равный 10.
  3. Инициализируются элементы массива a(i) случайными числами от -10 до 10 с шагом 20.
  4. Выводится на экран содержимое массива a(i).
  5. Определяются две переменные: m1 - второй максимум, m2 - первый максимум.
  6. Определяется переменная n равная единице.
  7. Происходит проверка на равенство первого элемента массива a(i) всем остальным элементам.
  8. Если это условие выполняется, то переменная n увеличивается на единицу.
  9. Если переменная n равна 10, то выводится сообщение Vse elementy massiva ravny и происходит переход к метке 777.
  10. Если условие из пункта 7 не выполняется, то начинается цикл, который проверяет каждый элемент массива a(i) на предмет того, является ли он максимальным.
  11. Если текущий элемент больше m1, то m2 присваивается значение m1, а m1 принимает значение текущего элемента.
  12. Если текущий элемент больше m2, но меньше m1, то m2 принимает значение текущего элемента.
  13. После цикла выводится сообщение с вторым максимумом массива a(i).
  14. Код заканчивается и происходит переход к метке 777.

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


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

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

12   голосов , оценка 4 из 5

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

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

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