Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 23 марта 2026 19:28

Maxr=-1000 minr=1000 summa=0 n=int(input("Введите количество учеников")) for i in range(n): r=int(input("Введите рост ученика")) summa=summa+r maxr=max(r,maxr) minr=min(r,minr) print("Средний рост учеников ", ) print("Максимальный рост ученика ", ) print("Минимальный рост ученика ", )

Ответ нейросети

23 марта 2026 19:28

Вот подробное решение задачи на исправление и пояснение, адаптированное для средней школы.

Что было не так в исходном коде

  • Неправильно организован цикл. Тело цикла должно быть с отступами внутри for.
  • Инициализация maxr и minr не самая надежная. Лучше брать первый введённый рост за начальное значение, чем полагаться на константы (-1000 и 1000).
  • В выводе print не были переданы вычисляемые значения (пустые скобки после текста).
  • Можно сделать расчёт среднего за одну проходку, не хранить все данные в списке, чтобы экономить память.

Пошаговый план

  1. Считать количество учеников n.
  2. Если n > 0:
    • Считать первый рост отдельно и задать summa, maxr, minr равными этому значению.
    • Затем для оставшихся учеников (с 2-го по n-й) считывать рост, накапливать сумму и обновлять максимум и минимум.
    • Вычислить средний рост как summa / n.
  3. Если n == 0 — обработать случай отдельно (например, вывести сообщение или задать значения по умолчанию).
  4. Вывести средний, максимальный и минимальный рост.

Ниже приведён исправленный и надёжный вариант кода (однопроходной, без хранения всех значений):

Код n = int(input("Введите количество учеников: "))

summa = 0 maxr = None minr = None

if n > 0: # Считываем рост первого ученика r = int(input("Введите рост ученика 1: ")) summa = r maxr = r minr = r

# Обрабатываем оставшихся учеников
for i in range(2, n + 1):
    r = int(input(f"Введите рост ученика {i}: "))
    summa += r
    if r > maxr:
        maxr = r
    if r < minr:
        minr = r

srednee = summa / n

else: # Если учеников нет srednee = 0 maxr = None minr = None

print("Средний рост учеников", srednee) print("Максимальный рост ученика", maxr) print("Минимальный рост ученика", minr)

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

  • maxr и minr инициализируются значением первого введённого роста, поэтому на их корректность не влияют заранее заданные константы.
  • В цикле мы читаем рост каждого ученика и сразу обновляем сумму, максимум и минимум.
  • Средний рост рассчитывается как сумма делённая на количество учеников: summa / n. Если n = 0, средний рост устанавливаем в 0, а maxr/minr в None, чтобы явно показать отсутствие данных.
  • Ввод для каждого ученика делает подсказки вида “Введите рост ученика i”, что удобно для пользователя.

Дополнительная альтернативная версия (без одной из веток кода) Если хочется ещё проще и не разделять первый элемент отдельно, можно использовать начальные значения и функции max/min, но в таком случае нужно аккуратно обрабатывать пустой ввод и, возможно, использовать список. Ниже короткий вариант с минимальными изменениями, но всё равно без констант:

n = int(input("Введите количество учеников: "))

summa = 0 heights = []

for i in range(n): r = int(input(f"Введите рост ученика {i+1}: ")) heights.append(r) summa += r

if heights: srednee = summa / n maxr = max(heights) minr = min(heights) else: srednee = 0 maxr = None minr = None

print("Средний рост учеников", srednee) print("Максимальный рост ученика", maxr) print("Минимальный рост ученика", minr)

Но первый вариант с одной проходкой и без списка обычно предпочтительнее для школьной задачи.

Если нужно, могу адаптировать решение под конкретный класс или уровень сложности (например, добавить обработку ошибок ввода или форматированный вывод с двумя знаками после запятой).

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

maxr=-1000 minr=1000 summa=0 n=int(input("Введите количество учеников")) for i in range(n): r=int(input("Введите рост ученика")) summa=summa+r maxr=max(r,maxr) minr=min(r,minr) print("Средний рост учеников ", ) print("Максимальный рост ученика ", ) print("Минимальный рост ученика ", )
Вот подробное решение задачи на исправление и пояснение, адаптированное для средней школы. Что было не так в исходном коде - Неправильно организован цикл. Тело цикла должно быть с отступами внутри for. - Инициализация maxr и minr не самая надежная. Лучше брать первый введённый рост за начальное значение, чем полагаться на константы (-1000 и 1000). - В выводе print не были переданы вычисляемые значения (пустые скобки после текста). - Можно сделать расчёт среднего за одну проходку, не хранить все данные в списке, чтобы экономить память. Пошаговый план 1) Считать количество учеников n. 2) Если n > 0: - Считать первый рост отдельно и задать summa, maxr, minr равными этому значению. - Затем для оставшихся учеников (с 2-го по n-й) считывать рост, накапливать сумму и обновлять максимум и минимум. - Вычислить средний рост как summa / n. 3) Если n == 0 — обработать случай отдельно (например, вывести сообщение или задать значения по умолчанию). 4) Вывести средний, максимальный и минимальный рост. Ниже приведён исправленный и надёжный вариант кода (однопроходной, без хранения всех значений): Код n = int(input("Введите количество учеников: ")) summa = 0 maxr = None minr = None if n > 0: # Считываем рост первого ученика r = int(input("Введите рост ученика 1: ")) summa = r maxr = r minr = r # Обрабатываем оставшихся учеников for i in range(2, n + 1): r = int(input(f"Введите рост ученика {i}: ")) summa += r if r > maxr: maxr = r if r < minr: minr = r srednee = summa / n else: # Если учеников нет srednee = 0 maxr = None minr = None print("Средний рост учеников", srednee) print("Максимальный рост ученика", maxr) print("Минимальный рост ученика", minr) Пояснение к коду - maxr и minr инициализируются значением первого введённого роста, поэтому на их корректность не влияют заранее заданные константы. - В цикле мы читаем рост каждого ученика и сразу обновляем сумму, максимум и минимум. - Средний рост рассчитывается как сумма делённая на количество учеников: summa / n. Если n = 0, средний рост устанавливаем в 0, а maxr/minr в None, чтобы явно показать отсутствие данных. - Ввод для каждого ученика делает подсказки вида “Введите рост ученика i”, что удобно для пользователя. Дополнительная альтернативная версия (без одной из веток кода) Если хочется ещё проще и не разделять первый элемент отдельно, можно использовать начальные значения и функции max/min, но в таком случае нужно аккуратно обрабатывать пустой ввод и, возможно, использовать список. Ниже короткий вариант с минимальными изменениями, но всё равно без констант: n = int(input("Введите количество учеников: ")) summa = 0 heights = [] for i in range(n): r = int(input(f"Введите рост ученика {i+1}: ")) heights.append(r) summa += r if heights: srednee = summa / n maxr = max(heights) minr = min(heights) else: srednee = 0 maxr = None minr = None print("Средний рост учеников", srednee) print("Максимальный рост ученика", maxr) print("Минимальный рост ученика", minr) Но первый вариант с одной проходкой и без списка обычно предпочтительнее для школьной задачи. Если нужно, могу адаптировать решение под конкретный класс или уровень сложности (например, добавить обработку ошибок ввода или форматированный вывод с двумя знаками после запятой).