Определить, сколько нулей лежит вне минимального и максимального значений массива X[1..N]. Числа, расположенные между минимальным и максимальным значениями, рассортировать по возрастанию — Pascal(Паскаль)

uses crt;
var
max,min,i,j,n,kol,indmax,indmin,t:integer;
mas,m:array[1..100] of integer;
 
BEGIN
 
  clrscr;
  randomize;
  write('Введите n ');
  readln(n);
  for i:=1 to n do
  begin
  mas[i]:=random(11)-5;
  write(mas[i]:3);
  end;
  max:=mas[1];
  min:=mas[2];
  for i:=1 to n do
  begin
    if mas[i]>=max then
    begin
      max:=mas[i];
      indmax:=i;
    end;
    if mas[i]<=min then
    begin
      min:=mas[i];
      indmin:=i;
    end;
  end;
  writeln;
  writeln('максимальный ',mas[indmax]);
  writeln('минимальный ',mas[indmin]);
  if indmin<indmax then
  begin
    for i:=1 to indmin-1 do
    if mas[i]=0 then kol:=kol+1;
    for i:=indmax+1 to n do
    if mas[i]=0 then kol:=kol+1;
 
    for i:=indmin+1 to indmax-2 do
    for j:=i+1 to indmax-1 do
    begin
      if mas[i]>mas[j] then
      begin
        t:=mas[i];
        mas[i]:=mas[j];
        mas[j]:=t;
      end;
    end;
    writeln;
    writeln('отсортированный массив');
    for i:=indmin+1 to indmax-1 do
    writeln(mas[i]:3);
  end
  else
    begin
      for i:=1 to indmax-1 do
      if mas[i]=0 then kol:=kol+1;
      for i:=indmin+1 to n do
      if mas[i]=0 then kol:=kol+1;
      for i:=indmax+1 to indmin-2 do
       for j:=i+1 to indmin-1 do
      begin
        if mas[i]>mas[j] then
        begin
          t:=mas[i];
          mas[i]:=mas[j];
          mas[j]:=t;
        end;
      end;
      writeln;
      writeln('отсортированный массив');
      for i:=indmax+1 to indmin-1 do
      write(mas[i]:3);
    end;
  writeln;
  writeln('колличество нулей равно ',kol);
  readln;
END.

Leave a Comment

1 + 2 =