Var max1,max2,min1,min2,i:integer; ar:array[1..n] of integer; begin max1:=integer.MinValue; max2:=integer.MinValue; min1:=integer.MaxValue; min2:=integer.MaxValue; for i:=1 to n do begin readln(ar[i]); if (ar[i]<max1) and (ar[i]>max2) then max2:=ar[i] else if ar[i]>max1 then begin max2:=max1; max1:=ar[i]; end; if (ar[i]>min1) and (ar[i]<min2) then min2:=ar[i] else if ar[i]<min1 then begin max2:=max1; min1:=ar[i]; end; end; writeln('Сумма максимумов:',max1+max2); writeln('Cумма минимумов:',min1+min2); end.
Пример ввода: 1 2 3 4 5 Пример вывода: Сумма максимумов:9 Cумма минимумов:3
Как ч понял сортировка по неубыванию это сортировка по возрастанию. То есть легкие элементы всплывают наверх, а тяжелые перемещаются вниз:
//Pascal const m = 1000 var arr: array[1..m] of integer; n,i, j, k: integer; begin readln(n); write ('Исходный массив: '); for i := 1 to n do begin readln(arr[i]); end; //сортировка методом пузырька for i := 1 to n-1 do for j := 1 to n-i do if arr[j] > arr[j+1] then begin k := arr[j]; arr[j] := arr[j+1]; arr[j+1] := k end;
write ('Отсортированный массив: '); for i := 1 to n do write (arr[i]:4); end.
Алгоритм сортировки на классическом языке программирования С
# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;} void bubblesort(int A[], int n) { int i, j; for(i = n-1 ; i > 0 ; i--) { for(j = 0 ; j < i ; j++) { if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]); } } }
Const
n=5;
Var
max1,max2,min1,min2,i:integer;
ar:array[1..n] of integer;
begin
max1:=integer.MinValue;
max2:=integer.MinValue;
min1:=integer.MaxValue;
min2:=integer.MaxValue;
for i:=1 to n do
begin
readln(ar[i]);
if (ar[i]<max1) and (ar[i]>max2) then max2:=ar[i] else
if ar[i]>max1 then
begin
max2:=max1;
max1:=ar[i];
end;
if (ar[i]>min1) and (ar[i]<min2) then min2:=ar[i] else
if ar[i]<min1 then
begin
max2:=max1;
min1:=ar[i];
end;
end;
writeln('Сумма максимумов:',max1+max2);
writeln('Cумма минимумов:',min1+min2);
end.
Пример ввода:
1
2
3
4
5
Пример вывода:
Сумма максимумов:9
Cумма минимумов:3