Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3563187
А
Аноним
09 февраля 2026 06:24 · публичный вопрос
А
Аноним

Результаты контрольной записаны в двух строках. В первой строке записаны фамилии и имена учеников, разделённые запятой и пробелом. Во второй — их оценки в том же порядке, что и…

Запрос пользователя

Результаты контрольной записаны в двух строках. В первой строке записаны фамилии и имена учеников, разделённые запятой и пробелом. Во второй — их оценки в том же порядке, что и фамилии. В третьей строке записано число X — интересующая учителя оценка. Выведите имя первого ученика по списку, который написал контрольную на оценку X.

Ответ нейросети
09 февраля 2026 06:24

Ниже — подробный план решения и пример реализации.

Цель решения

  • Найти первого ученика в списке, чья оценка равна X.
  • В первой строке списка — фамилия и имя ученика, во второй — их оценки в том же порядке, третья строка — X.

План решения (общий)

  1. Разделить первую строку на элементы по разделителю запятая+пробел (или по запятым с обрезкой пробелов): получить список "Фамилия Имя".
  2. Из каждого элемента взять имя (в типовом формате "Фамилия Имя" или "Фамилия Имя Отчество"):
    • взять второй токен после разделения пробелами (tokens[1]), если он существует.
    • иначе оставить пустую строку. Это обеспечивает получение именно имени (Имя).
  3. Разделить вторую строку на оценки по тем же правилам разделения и привести к целым числам.
  4. Прочитать третью строку и привести к целому X.
  5. Пройтись по списку оценок по порядку и найти первый индекс i, где оцени == X.
  6. Вывести имя на этом индексе. Если такого индекса нет, можно вывести сообщение об отсутствии.

Пример реализации на Python (работает с разделителями ", " или просто "," — обрезает лишние пробелы)

  • Ввод следует подать как строки: line1, line2, line3.

def find_first_with_grade(line1, line2, line3): # 1) Разделяем имена items = [s.strip() for s in line1.split(",")] # 2) Получаем имя (второй токен, если есть) names = [] for item in items: tokens = item.split() if len(tokens) >= 2: names.append(tokens[1]) elif tokens: names.append(tokens[0]) else: names.append("")

# 3) Разделяем оценки
score_strs = [s.strip() for s in line2.split(",")]
scores = []
for s in score_strs:
    if s:
        try:
            scores.append(int(s))
        except ValueError:
            scores.append(None)  # на случай некорректного входа
    else:
        scores.append(None)

# 4) X
try:
    X = int(line3.strip())
except ValueError:
    return None  # неверный ввод

# 5) Поиск первого индекса с оценкой X
for i, sc in enumerate(scores):
    if sc == X:
        return names[i]

# 6) Если не найдено
return None

Пример использования

  • Ввод: line1 = "Иванов Иван, Петров Петр, Смирнова Елена" line2 = "5, 4, 5" line3 = "5"

  • Результат: первый студент с оценкой 5 — Иван (из Иванова Ивана).

Если у вас есть конкретные строки входа, пришлите их — применю решение к вашим данным и выведу точный ответ.