Дан массив x целых чисел. Исключить из него все числа, встречающиеся более двух разесли такие имеются. Затем числа, стоящие на четных местах, упорядоч

15 января 2012

Дан массив x целых чисел. Исключить из него все числа, встречающиеся более двух раз(если такие имеются). Затем числа, стоящие на четных местах, упорядочить по невозрастаниюПрограмма необходима на языке Pascal

  • uses crt;

    const nmax=100;
     var x:array[1..nmax] of integer;
         n,m,i,j,k,a,p:integer;
     begin
    clrscr;

    randomize;
     repeat
    write(‘Размер массива от 2 до ‘,nmax,’ n=’);
     readln(n);

    until n in [2..nmax];

    writeln(‘Исходный массив:’);

    for i:=1 to n do
      begin
     
     x[i]:=random(10);
     
    write(x[i]:4);
     end;
     writeln;
    i:=1;

    m:=n;
     while i<n-1 do
      begin
       k:=1;
     
     a:=x[i];
     
    for j:=n downto i+1 do

      if x[j]=a then k:=k+1;

      if k>2 then
         begin
          j:=i;
          while j<=n do
          if x[j]=a then
           begin
            if j=n then n:=n-1
            else
             begin
              for p:=j to n-1 do
              x[p]:=x[p+1];
              n:=n-1;
             end;
         end
       
      else j:=j+1;

        end

      else i:=i+1;
      end;
    if n=0 then
      begin
       
     exit
     
    end;
     if n=m then
    write(‘Все элементы встречены не более 2 раз и не удалены’)
    else
      begin
     for i:=1 to n do
      write(x[i]:4);
     for i:=1 to n-1 do
       for j:=i+1 to n do
       if(i mod 2=0)and(j mod 2=0) and(x[i]<x[j]) then
        begin
         a:=x[i];
         x[i]:=x[j];
         x[j]:=a;
        end;
       for i:=1 to n do
       write(x[i]:4);
      end;

Комментарии

Добавить комментарий

Ваш e-mail не будет опубликован.