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;
a: array [1..10] of Integer;
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;
end.
===== PascalABC.NET =====
var a := ReadArrInteger('Введите 10 чисел:', 10);
var amax := a.Max;
var s := a.Where(p -> p <> amax).OrderDescending;
if s.Count > 0 then
var apmax := s.First;
var i := a.FindIndex(p -> p = apmax);
Println('Предмаксимальный элемент', apmax, 'номер', i+1)
end
else
Println('Нет решения: все элементы в массиве одинаковы')
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.
===== 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.