Новая Школа - онлайн-школа подготовки к ЕГЭ
Информатика · 9 класс Задача №3546978
А
Аноним
18 января 2026 13:26 · публичный вопрос
А
Аноним

даны три массива (1 массив- имя ученика,2 массив- оценки по математике,3 массив- оценки по русскому)отсортировать массивы по значению среднего балла и вывести на экран в…

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

Даны три массива (1 массив- имя ученика,2 массив- оценки по математике,3 массив- оценки по русскому)отсортировать массивы по значению среднего балла и вывести на экран в формате:имя человека и его оценки

Ответ нейросети
18 января 2026 13:26

Вот подробное решение задачи на Python с пошаговыми пояснениями. Мы сортируем учеников по их среднему баллу (математика и русский) и выводим имя и две оценки в нужном формате.

Задача (переменные):

  • names: массив имён
  • math: массив оценок по математике
  • rus: массив оценок по русскому
  • Нужно отсортировать по среднему баллу и вывести: имя: математика=..., русский=..., средний=...

Шаги решения:

  1. Проверка длин массивов (желательно). Чтобы не выйти за границы, используем минимальную длину трёх массивов.
  2. Вычисление среднего балла для каждого ученика: avg[i] = (math[i] + rus[i]) / 2.
  3. Связывание данных в структуру записи (имя, математика, русский, средний).
  4. Сортировка записей по среднему баллу (по возрастанию). По желанию можно сортировать по убыванию.
  5. Вывод: печать в формате "Имя: математика=..., русский=..., средний=...".

Пример кода (Python):

# Исходные данные (пример; замените на ваши значения)
names = ["Аня", "Илья", "Мария", "Пётр"]
math = [4, 5, 3, 4]
rus  = [5, 4, 4, 3]

# Шаг 1: взять минимальную длину
n = min(len(names), len(math), len(rus))

# Шаг 2-3: построение записей с вычислением среднего
records = []
for i in range(n):
    avg = (math[i] + rus[i]) / 2.0
    records.append((names[i], math[i], rus[i], avg))

# Шаг 4: сортировка по среднему баллу (по возрастанию)
records.sort(key=lambda t: t[3])

# Шаг 5: вывод
for name, m, r, avg in records:
    print(f"{name}: математика={m}, русский={r}, средний={avg:.2f}")

# Если нужно сортировать по убыванию среднего:
# records.sort(key=lambda t: t[3], reverse=True)

Пояснения к коду:

  • В переменной records каждая запись имеет вид (имя, математика, русский, средний).
  • Мы сортируем списковый формат records по четвертому элементу записи (среднему баллу) с помощью key=lambda t: t[3].
  • Вывод форматируем как "Имя: математика=X, русский=Y, средний=Z.ZZ" для понятного отображения.

Дополнительные варианты:

  • Использовать zip для компактности:
    • data = list(zip(names, math, rus))
    • records = [(n, m, ra, (m + ra) / 2.0) for (n, m, ra) in data]
    • records.sort(key=lambda x: x[3])
  • Альтернативный формат вывода без среднего:
    • print(f"{name}: математика={m}, русский={r}") — если не нужно показывать средний.

Если хотите, могу адаптировать код под другой язык (Java, C++, JavaScript) или под конкретный формат вывода. Также могу добавить обработку нечетного количества элементов, вывод по убыванию или сохранение результатов обратно в массивы.