Отсортировать по возрастанию все элементы массива, значения которых кратно 11 - PascalABC.NET
Формулировка задачи:
1. Дан массив из N элементов . Отсортировать по возрастанию все элементы, значения которых кратно 11.
*будет круто, если сможете использовать алгоритм пузырька.
Решение задачи: «Отсортировать по возрастанию все элементы массива, значения которых кратно 11»
textual
Листинг программы
uses System.linq;
type
g=Igrouping<integer,integer>;
var
a,b:array of integer;
begin
writeln('введите элементы массива через пробел:');
a:=ReadString.Split(new string[1](' '),System.StringSplitOptions.RemoveEmptyEntries).
Select(s->strtoint(s)).ToArray();
b:=a.Where((i:integer)->i mod 11=0).ToArray();
writeln('Элементы кратные 11:',b);
writeln('оригинальный отсортированный массив:',a.GroupBy((i:integer)->i).OrderBy((x:g)->x.key).selectmany(i->i));
writeln('полученный отсортированный массив:',b.GroupBy((i:integer)->i).OrderBy((x:g)->x.key).selectmany(i->i));
end.
Объяснение кода листинга программы
- Ввод элементов массива с помощью функции ReadString.Split.
- Преобразование введенных строк в целые числа с помощью функции strtoint.
- Выборка элементов массива, кратных 11, с помощью функции Where и оператора модуля.
- Вывод отсортированного массива с помощью функции GroupBy, OrderBy и SelectMany.
- Отсортированный массив выводится на экран с помощью функции writeln.