Предмет: Информатика, автор: parasit97

Дан одномерный массив из n целых чисел требуется написать функцию которая посчитает сколько раз в этом массиве встречается элементы следующий за максимальным в порядке убывания. Формат входных данных массив должен быть введен с клавиатуры.
Пример: 6 10 10 12 8 1 #элементы массива
2 # два раза встретился второй максимум

Ответы

Автор ответа: BobbyFresnel
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.  

Приложения:
Похожие вопросы
Предмет: Алгебра, автор: 666Larry666