Вывести
числа, большие среднего арифметического значений, записанных в файле,
имеющего структуру: сначала идет число в диапазоне от 1 до 1000 ,которое
определяет
количество последующих числовых значений в файле.
Пример входного файла:
3
5
10
15
Результат:
15
Решение:
const
N=1000;
Var
F: text;
a: array [1..N] of integer;
i: integer;
sum, kol: integer;
avg: real;
Begin
cls;
sum:=0;
Assign(F, 'input.txt');
Reset(F);
Read(F, kol);
for i:=1 to kol do
begin
Read(F, a[i]);
sum:=sum+a[i];
end;
avg:=sum / kol;
for i:=1 to kol do
begin
if a[i]>avg then
writeln(a[i]);
end;
Close(F);
End.
USES CRT;
Var
arr: array [1..99] of array [1..2] of integer;
str: string; // Строка, читаемая из файла
StrLen: integer; // Длинна строки, cчитанной из файла
SchoolStr: string; // № школы строкой
SchoolNum: integer; // № школы числом
code: integer; // Для преобразования из строки в число
RecordNum: integer; // Кол-во записей в файле
CurRec: integer; // Кол-во записей в массиве
F: text; // Файлвая переменная
i, j: integer; // Счетчики для циклов
IsFound: boolean; // Флаговая переменная
max: integer; // Максимальнео кол-во участников
SchoolQty: integer; // Кол-во школ с max участников
BEGIN
cls;
Assign(F,'file.txt');
Reset(F);
readln(F,RecordNum);
for i:=1 to RecordNum do
Begin
// Считать очередную строку из файла
readln(F, str);
StrLen:= Length(str);
// Вырезать номер школы из строки
SchoolStr:= TrimLeft(Copy(str,StrLen-1,StrLen));
Val(SchoolStr,SchoolNum,code);
// Проверить наличие школы в массиве
IsFound:=false;
for j:=1 to CurRec do
begin
// Если № школы есть,то увеличить количетсво на 1
if arr[j][1]=SchoolNum then
begin
Inc(arr[j][2]);
IsFound:=true;
break;
end;
end;
// Иначе добавить в массив строку с номером школы и кол=1
if not IsFound then
begin
Inc(CurRec);
arr[CurRec][1]:=SchoolNum;
arr[CurRec][2]:=1;
End;
End;
for i:=1 to CurRec do
writeln('# шк:', arr[i][1], ' кол-во=', arr[i][2]);
close(F);
max:=0;
// Найти максимум во втором столбце
for j:=1 to CurRec do
begin
if arr[j][2]>max then
max:=arr[j][2];
end;
SchoolQty:=0;
// Вывести школы,где max участников
for i:=1 to CurRec do
begin
if (arr[i][2]=max) then
Begin
writeln('№ школы:', arr[i][1]);
inc(SchoolQty);
End;
End;
writeln('Кол-во школ с максимальным количеством учатсников:', SchoolQty);
END.