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

захар188 захар188    1   22.11.2019 10:57    0

Ответы
IFRASHDIFRASHD IFRASHDIFRASHD  10.10.2020 15:03

===== 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.  


Дан одномерный массив из n целых чисел требуется написать функцию которая посчитает сколько раз в эт
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика