
Напишите программу на паскале, которая выбирает из списка футболистов лучшего бомбардира – того,
кто забил наибольшее количество мячей. Если несколько человек забили одинаковое наибольшее количество мячей, нужно вывести их имена и фамилии в том порядке, в котором они встречаются в исходном списке. Входные данные В первой строке записано количество футболистов в списке N . Следующие N строк имеют формат: <фамилия> <имя> <год рождения> <число забитых мячей> Выходные данные Программа должна вывести фамилии и имена тех футболистов, которые забили наибольшее количество мячей. В последней строке программа выводит количество голов, забитых каждым из этих футболистов.

Ответы на вопрос

var
n,i,j,max,k: Integer;
lname, name: array [1..100000] of String;
y,g,a:array [1..100000] of longint;
begin
Read(n);
for i:=1 to n do
begin
read(lname[i]);
read (name[i]);
read(y[i],g[i]);
if (max<g[i]) or (i=1) then
max:=g[i];
end;
for i:=1 to n do
if g[i]=max then
begin
writeln(lname[i], ' ', name[i]);
j:=j+1;
a[j]:=i;
end;
for i:=1 to j do
write(g[a[i]], ' ');
end.



Для решения этой задачи на Паскале, можно воспользоваться следующим кодом:
pascalprogram BestScorer; type FootballPlayer = record lastName: string; firstName: string; birthYear: integer; goalsScored: integer; end; var players: array of FootballPlayer; N, i, maxGoals: integer; procedure ReadFootballPlayers; var i: integer; begin for i := 0 to N - 1 do begin readln(players[i].lastName, players[i].firstName, players[i].birthYear, players[i].goalsScored); end; end; procedure FindMaxGoals; var i: integer; begin maxGoals := players[0].goalsScored; for i := 1 to N - 1 do begin if players[i].goalsScored > maxGoals then maxGoals := players[i].goalsScored; end; end; procedure PrintBestScorers; var i: integer; begin for i := 0 to N - 1 do begin if players[i].goalsScored = maxGoals then writeln(players[i].lastName, ' ', players[i].firstName); end; end; procedure PrintGoalsCount; var i: integer; begin for i := 0 to N - 1 do begin if players[i].goalsScored = maxGoals then write(players[i].goalsScored, ' '); end; writeln; // New line after printing goals count end; begin readln(N); SetLength(players, N); ReadFootballPlayers; FindMaxGoals; PrintBestScorers; PrintGoalsCount; end.
Программа сначала считывает количество футболистов в списке и создает массив структур FootballPlayer
для хранения информации о каждом футболисте. Затем она считывает данные для каждого футболиста.
Далее, программа находит максимальное количество голов среди всех футболистов в списке. Затем выводит фамилии и имена футболистов, которые забили наибольшее количество мячей, и количество голов, забитых каждым из них.
Пожалуйста, обратите внимание, что входные данные должны быть корректными, и программа не содержит проверок на ошибки ввода. Вы должны ввести данные в правильном формате, как указано в условии задачи.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili