Впаскале авс, надо, солидные напишите команды введите с клавиатуры одномерный массив m(x), элементами которого являются положительные и отрицательные целые числа. найдите среднее арифметическое чисел, больших 3; наибольшее среди последних 10-ти чисел, частное от деления наибольшего и среднего. сформируйте новый массив с(n), состоящий из элементов массива м(х), которые больше найденного частного.
const
nn=100;
var
M,C:array[1..nn] of integer;
x,i,n,s,max:integer;
m1,r:real;
begin
Write('x=');
Read(x);
Write('>');
s:=0;
n:=0;
for i:=1 to x do begin
Read(M[i]);
if M[i]>3 then begin
s:=s+M[i];
n:=n+1
end
end;
if n>0 then m1:=s/n
else m1:=0;
max:=M[x];
for i:=x-1 downto x-9 do
if M[i]>max then max:=M[i];
r:=max/m1;
n:=0;
for i:=1 to x do
if M[i]>r then begin
n:=n+1;
C[n]:=M[i];
Write(C[n],' ')
end;
end.
Пример
x=18
>-15 -19 -32 3 2 35 32 12 -44 39 -36 16 31 5 17 21 -43 -20
3 2 35 32 12 39 16 31 5 17 21
2. PascalABC.NET 3.2, сборка 1370 от 24.12.2016
Если программа не работает, обновите версию!
begin
var M:=ReadArrInteger('>',ReadInteger('x='));
var r:=(M.TakeLast(10).Max)/(M.Where(b->b>3).Average);
var C:=M.Where(b->b>r).ToArray; C.Println
end.
Пример
x= 18
> -15 -19 -32 3 2 35 32 12 -44 39 -36 16 31 5 17 21 -43 -20
3 2 35 32 12 39 16 31 5 17 21
Сравнение явно не в пользу школьного программирования...