Заполнить массив случайными числами и найти два максимальных элемента массива и их номера - Pascal
Формулировка задачи:
Прошу помощи в выводе номеров двух максимальных в массиве.
максимальные равны между собой
Решение задачи: «Заполнить массив случайными числами и найти два максимальных элемента массива и их номера»
textual
Листинг программы
const
n = 10;
var
a: array [1..n] of integer;
i, im1, im2: integer;
begin
randomize;
for i := 1 to n do
begin
a[i] := random(101);
Write(a[i], ' ');
end;
im1 := 1;im2 := 2;
writeln();
for i := 1 to n do
if a[im1] < a[i] then im1 := i;
im2:=integer(im1<2)+1;
for i := 1 to n do
if (a[im2] < a[i]) and (im1 <> i) then im2 := i;
Writeln('Максимальные элементы: a[', im1, ']=', a[im1], ', a[', im2, ']=', a[im2]);
end.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- n - количество элементов в массиве (равное 10 в данном случае);
- a - массив для заполнения случайными числами;
- i - индекс текущего элемента массива;
- im1 - номер первого максимального элемента;
- im2 - номер второго максимального элемента. С помощью функции randomize генерируются случайные числа для заполнения массива. Далее, с помощью цикла for происходит заполнение массива случайными числами от 1 до 100. Затем, с помощью двух циклов for, происходит поиск двух максимальных элементов массива. Первый цикл for ищет элемент, который является максимальным среди всех элементов, начиная с первого. Если такой элемент найден, его номер записывается в переменную im1. Второй цикл for ищет элемент, который является максимальным среди оставшихся элементов (то есть, исключая уже выбранный максимум). Если такой элемент найден, его номер записывается в переменную im2. В конце выводится сообщение с максимальными элементами и их номерами.