Форум сайта python.su
Люди добрые, помогите пожалуйста решить данную задачу, а то второй день мучаюсь…
На вход программе подаются сведения о сдаче экзаменов учениками 9–х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:
<Фамилия> <Имя> <оценки>,
где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
Иванов Петр 4 5 3
Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.
Офлайн
Покажи свой вариант, что не получается - подскажем.
Офлайн
да я особо ничего не написал.
Мысль такая:
1)записываем в переменную все про ученика
2)записываем в другую переменную имя и фамилию(что нам надо вывести)
3)создаем список и записываем туда оценки, а дальше складываем элементы списка и сравниваем.
Только как реализовать не знаю
Офлайн
polsovatel
Только как реализовать не знаю
Офлайн
Я читал уже. Вроде все знаю, но не могу решить задачу и все тут. Помогите
Офлайн
polsovatel
не похоже что вы и пытались ее решить.
Говорить буду про Python 2, в 3 немного по другому
Для начала можно попробовать так:
* задаем defaultdict словарь с типом данных list
* в цикле обрабатывает входные данные: считаем средний бал ученика. Используем это значение как ключ словаря и добавляем имя и фамилию ученика в значение этого словаря т.е. MyDict.append(student_name)
* словарь преобразуем в список значений MyDict.items()
* полученный список сортируем методом sort или функцией sorted
* первые 3 элемента соответствуют первым трех худшим баллам успеваемости, осталось только вывести имена студентов
Дальше вам надо этот алгоритм воплотить в жизнь, пользуясь документацией и учебниками/книгами.
После этого надо подумать а является ли это самым эффективным решением. Думаю нет. А стоит ли писать что то еще - если вы предыдущие сами не осилили ..то думаю нет
Офлайн