Предмет: Информатика,
автор: krokky01
Помогите плз.
Pascal ABC
Дано 5 натуральных чисел, не превышающих 2000 000 000. Вычислите значение того из них, которое ближе к их среднему арифметическому. В случае наличия нескольких вариантов ответов вывести наименьший вариант.
Вводные данные: A B C D E
Выходные данные: X
Пример:
входной файл
6 2 8 1 10
выходной файл
6
пояснение к примеру:
Среднее арифметическое равно (1+2+6+8+10)/5=5,4. Минимальное значение модуля разности даёт 6(0,6).
Ответы
Автор ответа:
0
const
n=5; // количество чисед
var
i,k:integer;
s:longint;
m,d,dc:real;
a:array[1..n] of longint;
fin,fout:Text; // файловые переменные для ввода/вывода
begin
Assign(fin,'input.txt'); Reset(fin); // файл готов к чтению
s:=0;
for i:=1 to n do
if not Eof(fin) then begin
Read(fin,a[i]);
s:=s+a[i]
end
else begin
Writeln('Во входном файле недостаточно данных');
Close(fin);
Exit
end;
Close(fin);
m:=s/n;
d:=Abs(a[1]-m); k:=1;
for i:=2 to n do begin
dc:=Abs(a[i]-m);
if dc<d then begin
k:=i; d:=dc
end
end;
Assign(fout,'output.txt'); Rewrite(fout); // файл готов к записи
Writeln(fout,a[k]);
Close(fout)
end.
n=5; // количество чисед
var
i,k:integer;
s:longint;
m,d,dc:real;
a:array[1..n] of longint;
fin,fout:Text; // файловые переменные для ввода/вывода
begin
Assign(fin,'input.txt'); Reset(fin); // файл готов к чтению
s:=0;
for i:=1 to n do
if not Eof(fin) then begin
Read(fin,a[i]);
s:=s+a[i]
end
else begin
Writeln('Во входном файле недостаточно данных');
Close(fin);
Exit
end;
Close(fin);
m:=s/n;
d:=Abs(a[1]-m); k:=1;
for i:=2 to n do begin
dc:=Abs(a[i]-m);
if dc<d then begin
k:=i; d:=dc
end
end;
Assign(fout,'output.txt'); Rewrite(fout); // файл готов к записи
Writeln(fout,a[k]);
Close(fout)
end.
Приложения:
Похожие вопросы
Предмет: Русский язык,
автор: nastya12513
Предмет: Английский язык,
автор: vladmi1705
Предмет: Алгебра,
автор: zamaraevdima2019
Предмет: Математика,
автор: еваа2