Предмет: Информатика,
автор: parasit97
Дан одномерный массив из n целых чисел требуется написать функцию которая посчитает сколько раз в этом массиве встречается элементы следующий за максимальным в порядке убывания. Формат входных данных массив должен быть введен с клавиатуры.
Пример: 6 10 10 12 8 1 #элементы массива
2 # два раза встретился второй максимум
Ответы
Автор ответа:
0
===== PascalABC.NET =====
function ЧислоВторыхМаксимумов(a: array of integer) :=
a.GroupBy(p -> p) // сгруппировали одинаковые
.Select(p -> (p.Count, p.Key)) // создали кортежи (кол, значение)
.OrderByDescending(p -> p[1]) // отсортировали по убыванию значений
.Skip(1) // пропустили первый элемент
.Take(1) // взяли только второй элемент
.Select(p -> p[0]); // выделили из кортежа количество
begin
var n:=ReadInteger('n ='); // длина массива
var a:=ArrRandom(n, 1, 10); // инициализируем массив
a.Println; // выводим его
ЧислоВторыхМаксимумов(a).Println // вызываем функцию, выводим результат
end.
Приложения:

Похожие вопросы
Предмет: Информатика,
автор: qwertyuiop7577
Предмет: Геометрия,
автор: sonaiwka2009
Предмет: Українська мова,
автор: ealexsmoke
Предмет: Алгебра,
автор: 666Larry666
Предмет: Математика,
автор: gelya210