Дан массив. Подсчитайте количество элементов массива, равных минимальному. (Массив из N,...

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

Дан массив. Подсчитайте количество элементов массива, равных минимальному. (Массив из N, где N не более 100) (Паскаль)


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

Var
   A:array[1..100] of integer;
   N,Min,k:integer;
Begin
Randomize;
Write('N = ');
ReadLn(N);
Write('Исходный массив:');
For N:= 1 to N do
    Begin
    A[N]:=random(21)-10;
    Write(' ',A[N]);
    End;
Min:=A[1];
For N:= 2 to N do
    if A[N] < Min then Min:=A[N];
k:=0;
For N:= 1 to N do
    if A[N] = Min then k:=k+1;
WriteLn;
WriteLn('Min = ',Min);
Write('kMin = ',k);
End.

(34.0k баллов)
0 голосов
1. Современный вариант

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var min:=a.Min;
  Writeln('Элементов, равный минимальному: ',a.Where(x->x=min).Count)
end.

Пример
n= 20
-9 5 5 -7 5 -5 -8 -4 9 5 -7 -10 -10 1 4 -10 -8 4 4 -4
Элементов, равный минимальному: 3

2. Школьное решение в стиле ТурбоПаскаль 1983г.

const
  nn=100;
var
  a:array[1..nn] of integer;
  n,i,min,k:integer;
begin
  Write('n=');
  Read(n);
  Randomize;
  min:=20;
  for i:=1 to n do begin
    a[i]:=Random(21)-10;
    Write(a[i],' ');
    if a[i]    end;
  Writeln;
  k:=0;
  for i:=1 to n do
    if a[i]=min then k:=k+1;
  Writeln('Элементов, равный минимальному: ',k)
end.
(150k баллов)