Перечислите фамилии и имена студентов в порядке убывания их средних оценок. Дано сначала количество студентов n, а затем n строк, в каждой из которых содержится фамилия, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значения от 1 до 5. Необходимо вывести пары фамилия-имя по одной на строке, разделяя фамилию и имя одним пробелом. Не нужно выводить оценки. Если несколько студентов имеют одинаковые средние оценки, то их нужно выводить в порядке, заданном во входных данных. Пример ввода
Татьяна_8032
Хорошо, для решения этой задачи вам нужно будет выполнить следующие шаги:
1. Сначала нужно считать количество студентов (n), которое задано в первой строке ввода.
2. Затем создайте пустой список для хранения данных о студентах. Вы можете использовать список или словарь для этой цели.
3. В цикле считывайте данные о студентах (фамилия, имя и оценки) и добавляйте их в созданный ранее список или словарь. По мере добавления данных, также вычисляйте среднюю оценку каждого студента.
4. После считывания всех данных, отсортируйте список или словарь студентов по убыванию их средних оценок. В случае равных средних оценок, порядок должен быть таким же, как во входных данных.
5. Выведите пары фамилия-имя каждого студента в отсортированном порядке, по одной паре на строке.
Вот пример кода на Python, решающего данную задачу:
Надеюсь, это поможет вам решить задачу! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.
1. Сначала нужно считать количество студентов (n), которое задано в первой строке ввода.
2. Затем создайте пустой список для хранения данных о студентах. Вы можете использовать список или словарь для этой цели.
3. В цикле считывайте данные о студентах (фамилия, имя и оценки) и добавляйте их в созданный ранее список или словарь. По мере добавления данных, также вычисляйте среднюю оценку каждого студента.
4. После считывания всех данных, отсортируйте список или словарь студентов по убыванию их средних оценок. В случае равных средних оценок, порядок должен быть таким же, как во входных данных.
5. Выведите пары фамилия-имя каждого студента в отсортированном порядке, по одной паре на строке.
Вот пример кода на Python, решающего данную задачу:
python
# Считываем количество студентов
n = int(input())
# Создаем пустой словарь для хранения данных о студентах и их средних оценках
students = {}
# Цикл для считывания данных о студентах и их оценках
for _ in range(n):
line = input().split()
surname = line[0]
name = line[1]
grades = list(map(int, line[2:]))
# Вычисляем среднюю оценку студента
avg_grade = sum(grades) / len(grades)
# Добавляем данные о студенте и его среднюю оценку в словарь
students[surname + " " + name] = avg_grade
# Сортируем список студентов по убыванию их средних оценок
sorted_students = sorted(students.items(), key=lambda x: x[1], reverse=True)
# Выводим пары фамилия-имя каждого студента в отсортированном порядке
for student in sorted_students:
print(student[0])
Надеюсь, это поможет вам решить задачу! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.
Знаешь ответ?