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