type tmasi=array[1..100] of integer;
var a:tmasi; n,i,j,pos,kl:byte; pr:boolean;
(*процедура ввода*)
procedure pr_wod(var n:byte; var mas:tmasi; var kl:byte);
var i:byte;
begin
writeln('размерность массива');
readln(n);
(*контроль значения переменной*)
while n>100 do
begin
writeln('неверно ввёл попробуй ещё раз');
readln(n);
end;
kl:=0;
for i:=1 to n do
begin
repeat
writeln('введи ',i,' элемент массива');
readln(mas[i]);
until not((kl=1)and(mas[i]=0));
if mas[i]=0 then kl:=1;
end;
end;
(*процедура вывода*)
procedure pr_out(n:byte; mas:tmasi);
var i:byte;
begin
writeln('массив');
for i:=1 to n do
write(mas[i]:6);
writeln;
end;
begin
pr_wod(n,a,kl);
if kl=0 then begin
writeln('В массиве отсутствует ноль');
exit;
end;
pr_out(n,a);
for i:=1 to n do
if a[i]=0 then begin pos:=i;break;end;
pr:=true;
while pr do
begin
pr:=false;
if pos>2 then
for i:=1 to pos-2 do
if a[i]<a[i+1] then begin
a[i]:=a[i]+a[i+1];
a[i+1]:=a[i]-a[i+1];
a[i]:=a[i]-a[i+1];
pr:=true;
end;
end;
j:=0;
if pos<n-1 then for i:=1 to (n-pos) div 2 do
begin
a[pos+i]:=a[pos+i]+a[n-i+1];
a[n-i+1]:=a[pos+i]-a[n-i+1];
a[pos+i]:=a[pos+i]-a[n-i+1];
end;
pr_out(n,a);
end.