a,b,c=eval(input("请输入三角形的三条边:")) if a+b>c and b+c>a and a+c>b: print("{},{},{},可以构成三角形".format(a,b,c)) else: print("{},{},{},不可以构成三角形".format(a,b,c))
时间: 2023-12-17 08:03:56 浏览: 103
好的,我修改一下代码,加上异常处理和修改输出语句的逻辑错误:
```python
try:
a, b, c = eval(input("请输入三角形的三条边,用逗号隔开:"))
if a + b > c and b + c > a and a + c > b:
print("{},{},{}可以构成三角形".format(a, b, c))
else:
print("{},{},{}不可以构成三角形".format(a, b, c))
except:
print("输入不合法,请输入三个数字,用逗号隔开")
```
这样修改后,程序会在输入非法时提示用户重新输入,同时在判断三角形是否合法时,输出语句也会根据实际情况进行修改。
相关问题
判断三角形并求三角形面积 __4-1 分数 3 作者 qhyu 单位 上海海洋大学 判断三角形并求三角形面积 输入三角形的三条边a、b、c的连长(不考虑输入数据错误),判断三条边是否能够构成三角形,如果能够构成三角形,再进一步判断其是否为等边三角形或直角三角形,然后输出判断结果,同时输出该三角形的面积(保留一位小数);如果所输入的三边不能构成三角形,则输出“不能构成三角形”。 提示 1).三角形的判断条件:任意两边之和大于第三边。 面积公式如下: 捕获.PNG, 其中s=(a+b+c)/2 2).输入一组数据时,如本题的三连长,请使用 a,b,c=eval(input()) 输入样例: 在这里给出一组输入。例如: 3,4,5 3,1,1 3,3,3 输出样例: 在这里给出相应的输出。例如: 边长3,4,5能构成直角三角形,它的面积是6.0。 不能构成三角形。 边长3,3,3能构成等边三角形,它的面积是3.9。
可以使用以下代码实现:
```python
import math
a, b, c = eval(input()) # 输入三角形三条边的长度
if a + b > c and a + c > b and b + c > a:
p = (a + b + c) / 2 # 计算半周长
area = math.sqrt(p * (p - a) * (p - b) * (p - c)) # 计算三角形面积
if a == b and b == c:
print("边长" + str(a) + "," + str(b) + "," + str(c) + "能构成等边三角形,它的面积是{:.1f}。".format(area))
elif a * a + b * b == c * c or a * a + c * c == b * b or b * b + c * c == a * a:
print("边长" + str(a) + "," + str(b) + "," + str(c) + "能构成直角三角形,它的面积是{:.1f}。".format(area))
else:
print("边长" + str(a) + "," + str(b) + "," + str(c) + "是一般三角形,它的面积是{:.1f}。".format(area))
else:
print("不能构成三角形。")
```
其中,用到了 `if-elif-else` 条件语句。首先判断三条边是否能够构成三角形。如果能够构成三角形,则根据三角形的类型计算面积并输出结果。如果不能构成三角形,则输出 `不能构成三角形`。
如果按照输入样例输入,则输出应该是:
```
边长3,4,5能构成直角三角形,它的面积是6.0。
不能构成三角形。
边长3,3,3能构成等边三角形,它的面积是3.9。
```
import math a=eval(input()) b=eval(input()) c=eval(input()) s = (a + b + c)/2 t = s*(s - a)*(s - b)*(s - c) area = math.sqrt(t) perimeter = a+b+c print("area={:.2f};perimeter={:.2f}".format(area, perimeter)),这段代码有什么问题
这段代码本身并没有语法错误,但是存在一个逻辑问题。如果输入的三条边无法构成一个三角形,那么计算面积和周长就没有意义。在这种情况下,程序应该输出一个错误提示信息,而不是计算并输出错误的结果。
您可以通过添加以下代码来检查输入的三边是否能够构成一个三角形:
```
if (a + b <= c) or (a + c <= b) or (b + c <= a):
print("输入的三条边无法构成一个三角形!")
else:
s = (a + b + c)/2
t = s*(s - a)*(s - b)*(s - c)
area = math.sqrt(t)
perimeter = a+b+c
print("area={:.2f};perimeter={:.2f}".format(area, perimeter))
```
这样,程序就会在输入无效的三边时输出错误提示信息。如果输入的三边能够构成一个三角形,那么程序会正常计算并输出面积和周长。
阅读全文