Выведите номера трёх различных минимальных элементов массива - Pascal ABC (14485)
Формулировка задачи:
Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх
различных минимальных элементов. Разрешается сделать только один проход по
массиву
Решение задачи: «Выведите номера трёх различных минимальных элементов массива»
textual
Листинг программы
const nx=30; var C:Array[1..nx] of integer; i,min1,min2,min3,q,q1,n:integer; begin min1:=1001;min2:=1001;min3:=1001; write('введите кол-во элементов массива'); Read(n); for i:=1 to n do begin C[i]:= random(1000); write(C[i]:4); end; for i:=1 to n do begin if C[i]< min1 then min1:=C[i]; if min2 > min1 then begin q:= min2;min2:=min1;min1:=q;end; if min3 > min2 then begin q1:= min3;min3:=min2;min2:=q1; if min2 > min1 then begin q:= min2;min2:=min1;min1:=q;end; end; end; writeln; write(min1:4,min2:4,min3:4); end.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- nx - количество элементов массива (30)
- C - массив целых чисел (максимальное значение 1000)
- i - счётчик итераций внешнего цикла
- min1, min2, min3 - переменные для хранения минимальных значений
- q, q1 - временные переменные для обмена значениями
- n - количество элементов массива, введенное пользователем В начале кода присваиваются начальные значения переменным min1, min2 и min3. Затем происходит чтение значения переменной n. Далее следует внешний цикл, который выполняется n раз. Внутри этого цикла каждый элемент массива C[i] присваивается переменной C[i], а затем выводится на экран с помощью функции write. После выполнения внешнего цикла выполняется внутренний цикл. Его условием является проверка того, что текущий элемент C[i] меньше значения min1. Если это условие истинно, то значение min1 обновляется. Затем проверяется, что значение min2 больше значения min1. Если это условие истинно, то значения min1, min2 и min3 обновляются с помощью функций q, q1 и q. В конце внутреннего цикла выводятся значения min1, min2 и min3 с помощью функции write. После выполнения всех итераций выводится итоговый результат с помощью функции write.