if max>max2 then
max2:=a
else
max:=a;
end;
writeln(max:4:2,' ',max2:4:2);
end.
или через массивВ массив заносим 2 элемента. В цикле вводим остальные элементы. В массиве находим минимальный и, если введенный следующий элемент (b) больше минимального массива, то записываем b в массив на место наименьшего.
В результате в массиве два максимальных эл-та
var
a:array[1..2]of integer;
n,i,min,j,m,b:integer;
begin
readln(n);
readln(a[1],a[2]);
for i:=3 to n do
begin
readln(b);min:=a[1];m:=1;
for j:=1 to 2 do
if a[j]<min then
begin
min:=a[j];
m:=j;
end;
if b>min then
a[m]:=b;
end;
for i:=1 to 2 do
writeln(a[i]);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Як виконується фрагмент алгоритму наведений на малюнку 3.45?
nn = 20;
type
ta = array[1..nn] of integer;
procedure FillArray(var a: ta; n, min, max: integer);
var
i, k: integer;
begin
k := max - min + 1;
for i := 1 to n do a[i] := Random(k) + min
end;
procedure WriteArray(a: ta; n, p: integer);
var
i: integer;
begin
for i := 1 to n do Write(a[i]:p);
Writeln
end;
procedure CopyNegative(var a, b: ta; m: integer; var n: integer);
var
i: integer;
begin
n := 0;
for i := 1 to m do
if a[i] < 0 then
begin
Inc(n);
b[n] := a[i]
end
end;
var
n: integer;
x, y: ta;
begin
Randomize;
FillArray(x, 10, -50, 50);
Writeln('Исходный массив');
WriteArray(x, 10, 4);
CopyNegative(x, y, 10, n);
Writeln('Массив из отрицательных элементов');
WriteArray(y, n, 4);
FillArray(x, 8, -200, 100);
Writeln('Исходный массив');
WriteArray(x, 12, 5);
CopyNegative(x, y, 12, n);
Writeln('Массив из отрицательных элементов');
WriteArray(y, n, 5);
end.
Тестовое решение:
Исходный массив
-12 17 35 -4 -45 8 33 -8 -47 -4
Массив из отрицательных элементов
-12 -4 -45 -8 -47 -4
Исходный массив
-150 -174 92 -168 69 -60 -165 -78 -47 -4 0 0
Массив из отрицательных элементов
-150 -174 -168 -60 -165 -78 -47 -4