В одномерном массиве найдите максимальное значение и индексы всех элементов равных...

0 голосов
45 просмотров

В одномерном массиве найдите максимальное значение и индексы всех элементов равных ему(ПАСКАЛЬ)


Информатика (223 баллов) | 45 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Const
   N = 13;
Var
   A:array[1..N] of integer;
   i,Max:integer;
Begin
Randomize;
Write('Исходный массив:');
Max:=1;
For i:= 1 to N do
    Begin
    A[i]:=random(N div 2);
    Write(' ',A[i]);
    if A[i] > A[Max] then Max:=i;
    End;
WriteLn;
WriteLn('Максимальное значение: ',A[Max]);
Write('Номера максимальных элементов:');
For i:= 1 to N do
    if A[i] = A[Max] then Write(' ',i)
End.



Пример работы программы:

Исходный массив: 4 5 3 0 0 4 0 4 2 3 3 5 2
Максимальное значение: 5
Номера максимальных элементов: 2 12

(34.0k баллов)
0 голосов
// PascalABC.NET 3.2, сборка 1425 от 22.04.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var amax:=a.Max;
  Writeln('Максимальный элемент- ',amax);
  Write('Номера элементов, равных ',amax,': ');
  a.Select((x,i)->(x,i)).Where(xi->xi[0]=amax).Select(xi->xi[1]+1).Println
end.

Пример
n= 50
1 3 -3 0 -9 0 -7 1 1 2 2 -5 2 -7 3 5 -6 10 7 3 1 -3 0 5 10 4 1 -6 -6 -4 -3 10 2 -3 4 -10 -1 9 -4 -9 8 -10 -3 6 4 -8 -9 -7 7 -6
Максимальный элемент- 10
Номера элементов, равных 10: 18 25 32
(150k баллов)