На соревнованиях выступление спортсмена оценивают 5 экспертов, каждый из них выставляет оценку в (целое число). для получения итоговой оценки лучшая и худшая из оценок экспертов отбрасываются, а для оставшихся трёх находится среднее арифметическое. напишите программу, которая принимает 5 оценок экспертов и возвращает итоговую оценку спортсмена. используйте функцию для вычисления итоговой оценки. входные данные входная строка содержит 5 неотрицательных целых чисел, разделённых пробелами. выходные данные программа должна вывести в первой строке отброшенные оценки экспертов (минимальную, затем максимальную), разделив их пробелами. во второй строке выводится одно вещественное число: итоговая оценка с двумя знаками в дробной части. pascal
n=5;
type
Mas=array[1..n] of integer;
var
max,min:integer;
function Avg(a:Mas):real;
var
i:integer;
s:real;
begin
max:=a[1]; min:=max; s:=max;
for i:=2 to n do begin
s:=s+a[i];
if a[i]>max then max:=a[i]
else
if a[i]<min then min:=a[i]
end;
Avg:=(s-min-max)/3
end;
var
m:Mas;
i:integer;
p:real;
begin
for i:=1 to n do Read(m[i]);
p:=Avg(m);
Writeln(min,' ',max);
Writeln(p:4:2)
end.
Тестовое решение:
8 9 7 5 8
5 9
7.67
A:array of integer;
i:integer;
Function Free(A:array of integer):real;
Var i:integer;
Begin
For i:= 2 to 5 do
if A[i]<A[A[0]] then A[0]:=i;
For i:= 1 to 4 do
if A[i]>A[A[6]] then A[6]:=i;
WriteLn(A[A[0]],' ',A[A[6]]);
For i:= 1 to 5 do
if (i<>A[0])and(i<>A[6]) then Free:=Free+A[i];
WriteLn((Free/3):0:2)
End;
Begin
SetLength(A,7);
For i:= 1 to 5 do
Read(A[i]);
A[0]:=1;
A[6]:=5;
Free(A);
End.