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

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

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

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

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

textual
Листинг программы
  1. var
  2.   n, k, i, j, t: integer;
  3.   a: array[1..10001] of integer;
  4.   f: boolean;
  5. begin
  6.   read(n);
  7.   for i := 1 to n do read(a[i]);
  8.   read(k);
  9.   for i := 1 to n - 1 do
  10.     for j := i + 1 to n do
  11.       if a[i] > a[j] then
  12.       begin
  13.         t := a[i];
  14.         a[i] := a[j];
  15.         a[j] := t;
  16.       end;
  17.   i := 1;
  18.   f := false;
  19.   repeat
  20.     j := i + 1;
  21.     while (a[i] = a[j]) and (j <= n) do inc(j);
  22.     if j - i = k then
  23.     begin
  24.       writeln(a[i]);
  25.       f := true;
  26.     end;
  27.     i := j;
  28.   until j > n;
  29.   if not f then write(0)
  30. 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

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

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

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