ЗАДАЧА: Напишите программу, которая считывает с клавиатуры два числа 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, не было ошибки?

amaliyaazlzova amaliyaazlzova    1   04.06.2021 17:20    242

Ответы
Teroristka123 Teroristka123  04.07.2021 17:22

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("ошибка")

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

ПОКАЗАТЬ ОТВЕТЫ
miaamkom1 miaamkom1  10.01.2024 14:15
Для исправления ошибки в коде вам нужно добавить проверку на случай, когда первое число меньше второго числа. Это становится проблемой, когда отрезок [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, программа выведет соответствующее сообщение, а не вызовет ошибку.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика