profile
Опубликовано 6 лет назад по предмету Информатика от Туриш

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

  1. Ответ
    Ответ дан HRAshton
    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;
Самые новые вопросы