Удвоить все максимальные элементы (вставить после каждого такого же элемента). - Pascal ABC

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

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

Добрый день! Помогите, пожалуйста, решить задачу Только каким-нибудь примитивным способом Дан массив целых чисел, длиной n, элементы которого могут повторяться. Удвоить все максимальные элементы (вставить после каждого такого же элемента).

Решение задачи: «Удвоить все максимальные элементы (вставить после каждого такого же элемента).»

textual
Листинг программы
  1. const n=20;
  2. var a:array[1..2*n] of integer;
  3.     mx,m,i,k:integer;
  4. begin
  5. randomize;
  6. writeln('Исходный массив:');
  7. for i:=1 to n do
  8.  begin
  9.   a[i]:=random(10);
  10.   write(a[i]:4);
  11.   if i=1 then mx:=a[1]
  12.   else if a[i]>mx then mx:=a[i];
  13.  end;
  14. writeln;
  15. writeln('Максимальный элемент=',mx);
  16. m:=n;
  17. i:=1;
  18. while i<=m do
  19. if a[i]=mx then
  20.  begin
  21.   m:=m+1;
  22.   for k:=m downto i+2 do
  23.   a[k]:=a[k-1];
  24.   a[i+1]:=mx;
  25.   i:=i+2;
  26.  end
  27. else i:=i+1;
  28. writeln('Массив после вставок:');
  29. for i:=1 to m do
  30. write(a[i]:4);
  31. end.

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

В данном коде объявлены следующие переменные:

  • n - количество элементов в исходном массиве (равное 20 в данном случае);
  • a - исходный массив, который нужно удвоить;
  • mx - текущий максимальный элемент в массиве;
  • m - количество элементов, которые нужно удвоить;
  • i - номер текущего элемента в массиве;
  • k - номер следующего элемента, в который нужно вставить значение максимального элемента;
  • randomize - функция, генерирующая случайное число в заданном диапазоне (в данном случае от 1 до 10);
  • writeln - функция, выводящая значение переменной на экран;
  • while - цикл, выполняющийся до тех пор, пока текущий элемент не станет максимальным. В первой части кода генерируется случайный исходный массив из 20 элементов. Затем находится первый максимальный элемент и сохраняется его значение в переменной mx. Далее, в цикле while, происходит поиск следующего максимального элемента. Если текущий элемент равен максимальному, то увеличивается счетчик m на единицу, и в цикле происходит перестановка элементов так, чтобы максимальный элемент был на своем месте. Если текущий элемент не является максимальным, то цикл завершается, и переходим к следующему элементу. Во второй части кода выводится исходный массив, а затем выводится массив после вставки максимальных элементов.

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


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

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

11   голосов , оценка 3.636 из 5

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

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

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