Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
 Аватар для Biologist
63 / 19 / 0
Регистрация: 25.01.2023
Сообщений: 169

Федя следит за своей успеваемостью

04.02.2023, 13:06. Показов 14280. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Федя следит за своей успеваемостью и очень серьёзно относится к среднему баллу. В частности, ему хотелось бы, чтобы средний балл не опускался ниже 4.
Какое наименьшее количество пятёрок ему надо получить, чтобы его средний балл с учётом полученных пятёрок стал не меньше 4?
На вход программе даётся число оценок N, затем N строк, в каждой оценка — число от 2 до 5.
Если Федин средний балл ниже 4, выведите две строки. В первой количество пятёрок, которое ему надо получить. Во второй — итоговый массив оценок, вместе с полученными пятёрками, записанными в конце массива.
Если с Фединым средним баллом всё в порядке, выведите фразу “Всё в порядке, Федя!”


Где-то ошибка:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
marks = []
count = 0
for i in range(n):
    marks.append(int(input()))
for i in range(len(marks)):
    if sum(marks) / n >= 4:
        print('Всё в порядке, Федя!')
        break
while sum(marks) / n < 4:
    for i in range(len(marks)):
        if marks[i] == 2 or marks[i] == 3:
            count += 1
            marks[i] == 5
    break
    print(count)
    print(marks)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2023, 13:06
Ответы с готовыми решениями:

Codeforces, 456B - Федя и математика
Страница задачи на codeforces.com Федя учится в гимназии. Домашнее задание по математике у Феди состоит в вычислении следующего...

Определите студентов с лучшей успеваемостью
Здравствуйте. Вот мое задание. Определите студентов с лучшей успеваемостью, то есть с максимальным средним баллом по трем предметам....

Создание страницы с успеваемостью учеников
Добрейшего времени суток, уважаемые коллеги! Делаю проект для практики и задался вопросом, как и через какой элемент можно было бы...

14
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
04.02.2023, 13:08
Цитата Сообщение от Biologist Посмотреть сообщение
marks[i] == 5
Одно "=" должно быть
0
 Аватар для OlegChe
73 / 55 / 25
Регистрация: 12.07.2014
Сообщений: 216
04.02.2023, 13:16
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
n = int(input())
marks = []
count = 0
for i in range(n):
    marks.append(int(input()))
if sum(marks) / n >= 4:
    print('Всё в порядке, Федя!')
else:
    for i in range(len(marks)):
        if marks[i] == 2 or marks[i] == 3:
            count += 1
            marks[i] = 5
    print(count)
    print(marks)
0
 Аватар для Biologist
63 / 19 / 0
Регистрация: 25.01.2023
Сообщений: 169
04.02.2023, 13:21  [ТС]
По-моему, здесь с отступами что-то не так. Передвинул 2 последние строчки влево. Только всё равно неправильно.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
marks = []
count = 0
for i in range(n):
    marks.append(int(input()))
for i in range(len(marks)):
    if sum(marks) / n >= 4:
        print('Всё в порядке, Федя!')
        break
while sum(marks) / n < 4:
    for i in range(len(marks)):
        if marks[i] == 2 or marks[i] == 3:
            count += 1
            marks[i] = 5
    break
print(count)
print(marks)
Добавлено через 3 минуты
В эту программу:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
n = int(input())
marks = list(map(int, input().split()))
count = 0
while sum(marks) / n < 4:
    for i in range(n):
        if marks[i] == 2:
            count += 1
            marks[i] = 5
            break
    if sum(marks) / n >= 4:
        break
    for i in range(n):
        if marks[i] == 3:
            count += 1
            marks[i] = 5
            break
print(count)
print(*marks)
советуют встроить вот эту:
Python
1
2
3
4
while sum(marks) < 4 * n:
    if 2 in marks: marks[marks.index(2)] = 5
    else: marks[marks.index(3)] = 5
    count += 1
И указывают, что цикл внутри цикла не нужен. Но не пойму, как это встроить.
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
04.02.2023, 13:25
Лучший ответ Сообщение было отмечено Biologist как решение

Решение

Biologist, может так попробовать?
Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
grades = [int(input()) for i in range(n)]
 
mean = sum(grades) / n
if mean >= 4:
    print("Всё в порядке, Федя!")
else:
    needed = max(0, int(n * 4 - sum(grades)) + 1)
    grades += [5] * needed
    print(needed)
    print(*grades)
Добавлено через 1 минуту
Biologist, А то что-то много лишнего у вас, цикл который тут абсолютно не нужен..
1
 Аватар для Biologist
63 / 19 / 0
Регистрация: 25.01.2023
Сообщений: 169
04.02.2023, 13:29  [ТС]
Вот что получается:


Первая строчка - Количество пятёрок не соответствует ответу.
Вторая строчка - Массив оценок выводится правильно, но не в [].
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
04.02.2023, 13:31
Biologist, Звездочку уберите в последней строке

Добавлено через 19 секунд
Я распаковывал список для более красивого вывода, а системе это не надо
1
 Аватар для Biologist
63 / 19 / 0
Регистрация: 25.01.2023
Сообщений: 169
04.02.2023, 13:38  [ТС]
Rim41, спасибо! Всё работает
0
3 / 3 / 2
Регистрация: 27.12.2022
Сообщений: 7
17.02.2023, 09:04
Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
grades = [int(input()) for i in range(n)]
 
mean = sum(grades) / n
if mean >= 4:
    print("Всё в порядке, Федя!")
else:
    needed = max(0, int(n * 4 - sum(grades)) + 1)
    grades += [5] * (needed - 1)
    print(needed - 1)
    print(grades)
1
0 / 0 / 0
Регистрация: 13.05.2025
Сообщений: 1
13.05.2025, 12:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
marks = []
count = 0
for i in range(n):
      marks.append(int(input()))
if sum(marks) / n >= 4:
      print('Всё в порядке, Федя!')
else: 
        while sum(marks) < 4 * n:
            if 2 in marks: 
              marks[marks.index(2)] = 5
              count += 1
        else: 
              marks[marks.index(3)] = 5
              count += 1
    print(count)
    print(marks)
Отступы не знаю как сделать!!!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
13.05.2025, 15:39
Цитата Сообщение от andlux Посмотреть сообщение
Отступы не знаю как сделать!!!
- окружить код тегами Питона.
0
Любознательный
 Аватар для YuS_2
7404 / 2251 / 360
Регистрация: 10.03.2016
Сообщений: 5,207
14.05.2025, 09:51

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
- окружить код тегами Питона.
Необходимо таки обязать каждого нового пользователя читать тему 'Памятка "Как работать в редакторе сообщений"', с обязательным подтверждением о прочтении... понятно, что читать будут не только лишь все, мало кто может это делать, но многие ведь просто не знают о наличии такого топика и не ставят теги не потому, что не хотят, а от растерянности, типа: "а как тут всё работает?!!! столько кнопок, что в глазах рябит...". Ну, а по ссылкам, которые перед глазами, не ходят, ибо отвлекает же

1
0 / 0 / 0
Регистрация: 06.11.2025
Сообщений: 4
09.11.2025, 10:17
помогите найти ошибку
Вложения, ожидающие проверки
Тип файла: jpg 1.jpg
0
Вирусоборец
 Аватар для thyrex
14433 / 7475 / 1579
Регистрация: 06.09.2009
Сообщений: 27,112
09.11.2025, 15:38
Cat2013,
1. Условие Вашей задачи отличается от условия автора темы.
2. Условие в картинках - нарушение правил форума. Тем более, что оно видно только частично.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6136 / 2830 / 1039
Регистрация: 01.06.2021
Сообщений: 10,320
17.11.2025, 20:08
Цитата Сообщение от thyrex Посмотреть сообщение
Условие в картинках - нарушение правил форума.
Internet Explorer на панели задач в конце 2025 года это нечто. За такое можно и простить нарушение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2025, 20:08
Помогаю со студенческими работами здесь

Определите учащихся с наилучшей успеваемостью
Дан текстовый файл (in.txt) содержащий список учащихся и их оценки по трем предметам: математике, физике, информатике. Формат файла:...

Выдать информацию о группах с качественной успеваемостью больше 80%
Файл содержит сведения об успеваемости по информатике каждая запись которого содержит поля : группа и качественная успеваемость.(Группы и...

Расположить структуры массива в соответствии с успеваемостью студентов
Здравствуйте. Помогите пожалуйста написать функцию для решения следующей задачи. Расположить структуры массива в соответствии с...

Расположить структуры массива в соответствии с успеваемостью студентов.
Фотография прилагается

В последовательности структур найти группу с максимальной успеваемостью
Пожалуста, помогите. Дана последовательность структур. Структура содержит поля с характеристиками студенческих групп: название группы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru