Краткий ответ: программа по трём сторонам считает полупериметр \(p\) и площадь \(s\) по формуле Герона, но в конце выводит только полупериметр:
print(p)
Поэтому на экране будет число \(p=\frac{a+b+c}{2}\), а не площадь. Конкретный ответ зависит от того, какие стороны ввели.
Например, для сторон \(6\), \(8\), \(10\):
\[ p=\frac{6+8+10}{2}=12 \]
\[ s=\sqrt{12(12-6)(12-8)(12-10)} =\sqrt{12\cdot6\cdot4\cdot2}=24 \]
Но программа выведет 12, потому что написано print(p).
Что делает каждая часть:
float(input(...))— вводит число и превращает его в десятичную дробь;p = (a + b + c) / 2— полупериметр;s = math.sqrt(...)— площадь по формуле Герона;print(p)— печатает полупериметр.
Как исправить, если нужна площадь:
print(p)
print(s)
или только площадь:
print(s)
Если нужна подпись:
print("Полупериметр:", p)
print("Площадь:", s)
Важно: программа не проверяет, существует ли такой треугольник. Если, например, ввести \(1\), \(2\), \(10\), под корнем получится отрицательное число, и появится ошибка math domain error.