М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

ЗАДАЧА: Напишите программу, которая считывает с клавиатуры два числа a и b, считает и выводит на консоль среднее арифметическое всех чисел из отрезка [a; b], которые кратны числу 3.

Мой код:

firstNumber = int(input('Введите первое число: '))
secondNumber = int(input('Введите второе число: '))

summ = 0
temp = 0
if firstNumber % 3 != 0:
_firstNumber = firstNumber + 3 - (firstNumber % 3)
for i in range (firstNumber, secondNumber + 1, 3):
_summ += i
_temp += 1
print(summ/temp)

Вопрос: если задать отрезок от 1 до 2, выдаёт ошибку.

Как исправить код, чтобы при вводе 1 и 2, не было ошибки?

👇
Ответ:
maksisenko6451
maksisenko6451
19.04.2022

a = int(input( ))

b = int(input( ))

count = 0

summa =0

for i in range(a, b+1):

if i % 3 == 0:

count += 1

summa += i

if count != 0: (на ноль делить нельзя)

answer = summa / count

print(answer)

else: print("ошибка")

отметить лучшим ответом

4,5(59 оценок)
Ответ:
stich3918
stich3918
19.04.2022
Для исправления ошибки в коде вам нужно добавить проверку на случай, когда первое число меньше второго числа. Это становится проблемой, когда отрезок [a; b] не содержит чисел, кратных 3. В таком случае, значение переменной `temp` будет равно 0, и при попытке деления на ноль будет возникать ошибка.

Чтобы исправить эту проблему, вы можете добавить условную проверку перед делением на `temp`. Если `temp` равно 0, вы можете вывести на консоль соответствующее сообщение о том, что в указанном отрезке нет чисел, кратных 3.

Вот исправленный код:

```python
firstNumber = int(input('Введите первое число: '))
secondNumber = int(input('Введите второе число: '))

summ = 0
temp = 0

if firstNumber % 3 != 0:
firstNumber = firstNumber + 3 - (firstNumber % 3)

for i in range(firstNumber, secondNumber + 1, 3):
summ += i
temp += 1

if temp == 0:
print("В указанном отрезке нет чисел, кратных 3")
else:
print(summ/temp)
```

Теперь, если отрезок [a; b] не содержит чисел, кратных 3, программа выведет соответствующее сообщение, а не вызовет ошибку.
4,5(39 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ