Удвоить все максимальные элементы (вставить после каждого такого же элемента). - Pascal ABC
Формулировка задачи:
Добрый день!
Помогите, пожалуйста, решить задачу
Только каким-нибудь примитивным способом
Дан массив целых чисел, длиной n, элементы которого могут повторяться. Удвоить все максимальные элементы (вставить после каждого такого же элемента).
Решение задачи: «Удвоить все максимальные элементы (вставить после каждого такого же элемента).»
textual
Листинг программы
- const n=20;
- var a:array[1..2*n] of integer;
- mx,m,i,k:integer;
- begin
- randomize;
- writeln('Исходный массив:');
- for i:=1 to n do
- begin
- a[i]:=random(10);
- write(a[i]:4);
- if i=1 then mx:=a[1]
- else if a[i]>mx then mx:=a[i];
- end;
- writeln;
- writeln('Максимальный элемент=',mx);
- m:=n;
- i:=1;
- while i<=m do
- if a[i]=mx then
- begin
- m:=m+1;
- for k:=m downto i+2 do
- a[k]:=a[k-1];
- a[i+1]:=mx;
- i:=i+2;
- end
- else i:=i+1;
- writeln('Массив после вставок:');
- for i:=1 to m do
- write(a[i]:4);
- end.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- n - количество элементов в исходном массиве (равное 20 в данном случае);
- a - исходный массив, который нужно удвоить;
- mx - текущий максимальный элемент в массиве;
- m - количество элементов, которые нужно удвоить;
- i - номер текущего элемента в массиве;
- k - номер следующего элемента, в который нужно вставить значение максимального элемента;
- randomize - функция, генерирующая случайное число в заданном диапазоне (в данном случае от 1 до 10);
- writeln - функция, выводящая значение переменной на экран;
- while - цикл, выполняющийся до тех пор, пока текущий элемент не станет максимальным. В первой части кода генерируется случайный исходный массив из 20 элементов. Затем находится первый максимальный элемент и сохраняется его значение в переменной mx. Далее, в цикле while, происходит поиск следующего максимального элемента. Если текущий элемент равен максимальному, то увеличивается счетчик m на единицу, и в цикле происходит перестановка элементов так, чтобы максимальный элемент был на своем месте. Если текущий элемент не является максимальным, то цикл завершается, и переходим к следующему элементу. Во второй части кода выводится исходный массив, а затем выводится массив после вставки максимальных элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д