Поменять элементы в разных половинах массива - Pascal ABC

Формулировка задачи:

Поменять местами самый последний максимальный элемент в первой половине массива с самым первым минимальным элементом во второй половине массива. Спасибо за помощь.

Код к задаче: «Поменять элементы в разных половинах массива - Pascal ABC»

textual
const n=10;
type mas=array[1..n] of integer;
var a:mas;
    i,max,min,tmp:integer;
procedure vv_mas(var x:mas;s:string[3];f:boolean);
var i:integer;
begin
  writeln(s);
  for i:=1 to n do
   begin
    if f then x[i]:=random(11);
    write(a[i],' ')
   end;
  writeln; 
end;
begin
 vv_mas(a,'A:',true);
 max:=1;min:=n;
 for i:=2 to (n+1) div 2 do
  begin
   if a[i]>=a[max] then max:=i;
   if a[n-i+1]<=a[min] then min:=n-i+1;
  end;
 writeln('последний максимальный в первой половине: ',a[max]); 
 writeln('первый минимальный во второй половине: ',a[min]);
 tmp:=a[min];a[min]:=a[max];a[max]:=tmp;
 vv_mas(a,'A'':',false)
end.

11   голосов, оценка 4.545 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы