Разделить массив на две части, поместив в первую элементы, большие среднего арифметического элементов массива, а во вторую (программа Паскаль)

Вопрос посетителя

Разделить массив на две части, поместив в первую элементы, большие среднего арифметического элементов массива, а во вторую — меньшие (части не сортировать).

Ответ эксперта

uses crt;
const nmax=100;
var a:array[1..nmax]of integer;
    n,i,k,j,x:integer;
    sr:real;
begin
clrscr;
randomize;
repeat
write(‘Размер массива до ‘,nmax,’ n=’);
readln(n);
until n in [1..nmax];
writeln(‘Исходный массив:’);
sr:=0;
for i:=1 to n do
   begin
     a[i]:=random(20);
     write(a[i]:3);
     sr:=sr+a[i];
   end;
writeln;
writeln;
sr:=sr/n;
writeln(‘Среднее=’,sr:0:1);
writeln;
k:=0;
for i:=1 to n do
if a[i]>sr then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
writeln(‘Перестановка:’);
for i:=1 to n do
write(a[i],’ ‘);
readln
end.

image_pdfСкачать ответimage_printРаспечатать решение

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

Похожие вопросы от пользователей