Определить кол-во наибольших чисел в произвольно заданном числовом массиве(за один проход...

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

Определить кол-во наибольших чисел в произвольно заданном числовом массиве(за один проход по массиву).


Информатика (20 баллов) | 58 просмотров
0

Паскаль?

Дано ответов: 2
0 голосов
Правильный ответ

Const n=10;
var a:array[1..n] of integer;
max,k,i:integer; 
begin
Randomize;
for i:=1 to n do begin
 a[i]:=random(21);
 write(a[i]:3);
 end;
writeln;
max:=a[1]; k:=1;
for i:=2 to n do
 if a[i]>max
  then begin max:=a[i];  k:=1; end
  else if a[i]=max then k:=k+1;
writeln('max = ',max,'  k = ',k);
end.

Пример:
  1  4  9 20  9  5  8 20 14 15
max = 20  k = 2

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

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var k:=1;
  var max:=a[0];
  for var i:=1 to a.Length-1 do
    if a[i]>max then begin max:=a[i]; k:=1 end
    else
      if a[i]=max then k+=1;
  Writeln('Количество макс. элементов: ',k)
end.

Пример
n= 17
-7 -9 1 -9 -3 7 1 -6 6 7 -2 2 7 -1 -4 6 4
Количество макс. элементов: 3
(150k баллов)