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

Заполнить массив случайными целыми числами и выделить в другой массив все числа, которые встречаются более одного раза.(Паскаль)
Гость
Ответ(ы) на вопрос:
Гость
 const   n = 15; var   a, b: array[1..n] of integer;   i, j, step, t: integer;   flag: boolean; begin   Randomize;   Writeln('Исходные элементы массива');   for i := 1 to n do   begin     a[i] := Random(10) - 5;     Write(a[i]:4)   end;   { Сортируем массив (метод Шелла) }   step := n div 2;   while step > 0 do   begin     for j := n - step downto 1 do     begin       i := j;       while i <= n - step do       begin         if a[i] > a[i + step] then         begin           t := a[i]; a[i] := a[i + step]; a[i + step] := t         end;         i := i + step       end     end;     step := step div 2   end;   {   проходим по массиву и если элемент встречается более одного раза подряд,   переносим его в другой массив   }   j := 0; t := a[1]; flag := false;   for i := 2 to n do   begin     if (a[i] = t) and (not flag) then     begin       j := j + 1; b[j] := t; flag := true     end     else begin flag := false; t := a[i] end   end;   Writeln;   Writeln('Отобранные элементы массива');   for i := 1 to j do Write(b[i]:4);   Writeln end. Тестовое решение: Исходные элементы массива   -2   4   1  -3  -1  -2  -5  -1   2   4   1   3  -5  -2  -3 Отобранные элементы массива   -5  -3  -2  -1   1   4
Не нашли ответ?
Ответить на вопрос
Похожие вопросы