Помогите, вообще не могу понять, что происходит, все вроде должно работать, но код с разными числами ведет себе максимально странно, что не так? К примеру если взять исходные данные (18 7 19), то ответом выдает 18. Это странно т.к условие (if a<=b and a<=c было выполнено, хотя не должно. Плюсом не совсем понятно, что выводить если числа будут равны, одно число или все
Проблема в вашем коде заключается в неправильном синтаксисе. Код должен быть правильно выровнен для работы с условными операторами if-else, и вы должны использовать двоеточия после каждого оператора if, elif и else. Кроме того, вы забыли использовать оператор присваивания для конвертации строковых значений в целочисленные значения. Вот исправленный код:
a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
if a <= b and a <= c:
if a == b or a == c:
if a == b and a != c:
print(a, b)
elif a == c and a != b:
print(a, c)
else:
print(a, b, c)
else:
print(a)
elif b <= c:
if b == c:
print(b, c)
elif b < c:
print(b)
else:
print(c)
Теперь код должен корректно работать и выводить минимальное число корректно. Если два или три числа равны, код будет печатать соответствующие значения.
Одна из проблем в вашем коде заключается в том, что вы используете оператор сравнения == вместо оператора присваивания = при преобразовании переменных a, b и c в целые числа. Вот исправленная версия вашего кода: a,b,c = input().split()
a,b,c = int(a),int(b),int(c)