Создается, так сказать, массив, длину которого вводите вы. Затем вы его заполняете. В цикле происходит сортировка чисел массива от меньшего к большему(если число слева больше числа справа, то поменять их местами) и выводится на экран первые два числа, то есть 2 наименьших числа массива.
Однако тупо реализовано создание массива. Неважно сколько вы впишете длину массива(<100), он все равно будет занимать память на 100 символов, а это очень глупо. Для создания динамических массивов(массивы , размеры которых РЕАЛЬНО указываете вы сами) используйте указатели.
Program maximum;
Var a, max, k, i: integer;
Begin
max:=0;
k:=0;
For i:=1 to 4 do
begin
Readln(a);
if (a > max) then
Begin
max:=a;
k:=1;
end else begin
If (a = max) then
k:=k+1;
end;
end;
end;
Writeln(max,k);
end.
Var
i,count:integer;
h: array [1..20] of integer;
begin
count:=0;
writeln('Введите элементы');
for i:=1 to 20 do
read(h[i]);
for i:=1 to 20 do
if h[i]>0 then
count:=count+1;
writeln('Количество нулевых элементов ', count)
end.
Збс, клевое задание................