Отсортировать массив и вывести элементы массива, которые встречаются ровно K раз - Pascal

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

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

Напишите программу, которая сортирует массив и выводит все элементы массива, которые встречаются ровно K раз. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . В третьей строке записано натуральное число K . Выходные данные Программа должна вывести все элементы массива, которые встречаются ровно K раз, в порядке возрастания, разделив их пробелами. Если таких элементов нет, программа должна вывести число 0. Примеры входные данные 6 1 2 1 2 1 3 2 выходные данные 2

Решение задачи: «Отсортировать массив и вывести элементы массива, которые встречаются ровно K раз»

textual
Листинг программы
var
  n, k, i, j, t: integer;
  a: array[1..10001] of integer;
  f: boolean;
begin
  read(n); 
  for i := 1 to n do read(a[i]); 
  read(k);
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if a[i] > a[j] then 
      begin
        t := a[i]; 
        a[i] := a[j];
        a[j] := t;
      end;
  i := 1;
  f := false;
  repeat
    j := i + 1;
    while (a[i] = a[j]) and (j <= n) do inc(j);
    if j - i = k then 
    begin
      writeln(a[i]);
      f := true;
    end;
    i := j;
  until j > n;
  if not f then write(0)
end.

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

В данном коде происходит следующее:

  1. Создаются переменные n, k, i, j и t, которые будут использоваться для сортировки и подсчета количества повторений элементов массива.
  2. Чтение значений переменных n и k.
  3. Чтение значений элементов массива a от 1 до n.
  4. Выполнение сортировки массива a методом сортировка вставками. Для этого используется вложенный цикл, который проходит по всем элементам массива от i = 1 до n-1 и сравнивает текущий элемент с каждым следующим элементом. Если текущий элемент больше следующего, то они меняются местами. Этот процесс повторяется до тех пор, пока все элементы не будут отсортированы.
  5. Инициализация переменной i = 1 и f = false.
  6. Запуск цикла repeat, который будет выполняться до тех пор, пока не будет найдено k-ое повторение элемента в массиве.
  7. Внутри цикла повторяется итерация по массиву от i = 1 до n, где каждый элемент сравнивается с текущим элементом. Если элементы равны и j <= n, то увеличивается значение j на 1. Если j - i = k, то выводится значение a[i], и переменная f устанавливается в true.
  8. После завершения внутреннего цикла, переменная i устанавливается равной j, и цикл повторяется до тех пор, пока j > n.
  9. Если в конце цикла не было найдено k-ое повторение элемента, то выводится ноль. Таким образом, данный код выполняет сортировку массива и выводит элементы, которые встречаются ровно k раз.

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


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

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

9   голосов , оценка 4.222 из 5
Похожие ответы