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

Паскаль. В целочисленном массиве из 10 элементов найти предмаксимальное по значению число , вывести его позицию. Например, 2 0 3 1 1 максимальное число 3, предмаксимальное 2 его позиция 1.

Ответы

Автор ответа: fedrfedr
1

Ответ:

program predmax;

function GetMax (aa: array of Integer): Integer;

var

 i, imax: Integer;

begin

 imax := Low (aa);

 for i := Low (aa) + 1 to High (aa) do

   if aa [i] > aa [imax] then

     imax := i;

 GetMax := imax + 1;

end;

var

 a: array [1..10] of Integer;

 i, imax: Integer;

begin

 Write ('Массив: ');

 for i := Low (a) to High (a) do

   Read (a [i]);

 a [GetMax (a)] := - MaxInt;

 imax := GetMax (a);

 Write ('Предмаксимальный элемент a[', imax, '] = ', a [imax]);

 ReadLn;

 ReadLn;

end.


fedrfedr: Массив: 1 1 1 1 1 1 1 1 1 1
Предмаксимальный элемент a[2] = 1
fedrfedr: Компилировал на Delphi, заменил Result на GetMax для лучшей совместимости
Автор ответа: BobbyFresnel
0

===== PascalABC.NET =====

begin

 var a := ReadArrInteger('Введите 10 чисел:', 10);

 var amax := a.Max;

 var s := a.Where(p -> p <> amax).OrderDescending;

 if s.Count > 0 then

 begin

   var apmax := s.First;

   var i := a.FindIndex(p -> p = apmax);

   Println('Предмаксимальный элемент', apmax, 'номер', i+1)

 end

 else

   Println('Нет решения: все элементы в массиве одинаковы')

end.

Приложения:
Похожие вопросы