В одномерном массиве выбрать два числа по заданному условию - Pascal ABC

Формулировка задачи:

в одномерном массиве выбрать два числа так чтобы остальные элементы можно было распределить на три примерно равные по количеству группы- не больше меньшего из этих двух, не меньше большего и все остальные.

Код к задаче: «В одномерном массиве выбрать два числа по заданному условию - Pascal ABC»

textual
const nmax=100;
var a:array[1..nmax] of integer;
    n,i,j,i1,i2:byte;
    x:integer;
begin
randomize;
repeat
write('Размер массива А от 5 до ',nmax,' n=');
readln(n);
until n in [5..nmax];
writeln('Массив A');
for i:=1 to n do
 begin
  a[i]:=random(100);
  write(a[i]:4)
 end;
writeln;
{отсортируем массив по возрастанию}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
i1:=(n-2) div 3+1;{найдем номер первого числа
                   n минус 2 разделяющих, разделить на 3+1}
i2:=(i1+n+2)div 2;{найдем номер второго числа
                   первое+n+2 разделяющих, разделить на 2}
writeln('Первое число=',a[i1]);
writeln('Второе число=',a[i2]);
writeln('Числа до первого числа');
for i:=1 to i1-1 do
write(a[i]:4);
writeln;
writeln('Числа между первым и вторым числами');
for i:=i1+1 to i2-1 do
write(a[i]:4);
writeln;
writeln('Числа после второго числа');
for i:=i2+1 to n do
write(a[i]:4);
writeln;
end.

12   голосов, оценка 3.833 из 5


СОХРАНИТЬ ССЫЛКУ