用c编写从键盘输入三角形的三条边ABC判断他们是否能够构成三角形如果能则计算出面积如果不能则提示信息
时间: 2023-05-29 21:02:14 浏览: 205
以下是使用C语言编写的程序,可以从键盘输入三角形的三条边ABC,判断它们能否构成三角形,如果能则计算出面积,如果不能则输出提示信息:
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, s, area;
printf("请输入三角形的三条边:\n");
scanf("%f %f %f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
s = (a + b + c) / 2.0;
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("这三条边能够构成三角形,面积为:%f\n", area);
}
else {
printf("这三条边不能构成三角形。\n");
}
return 0;
}
```
程序首先通过`scanf`函数从键盘输入三角形的三条边。接着,利用三角形判定法则判断这三条边是否能够组成三角形。如果能,计算出半周长`s`和面积`area`,并输出结果;如果不能,则直接输出提示信息。其中,计算面积的公式为海伦公式:$area=\sqrt{s(s-a)(s-b)(s-c)}$,其中$s$为半周长:$s=\frac{(a+b+c)}{2}$。
相关问题
用Python编写程序,从键盘上输入三角形三条边,判断能否构成直角三角形,如果能构成直角三角形,则计算其面积和周长,如果不能构成,则抛出异常
好的,我来解答这个问题。
以下是 Python 代码:
```python
import math
class NotRightTriangleError(Exception):
pass
def calculate_triangle(a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
raise NotRightTriangleError("无法构成三角形")
if a > b and a > c:
if a ** 2 == b ** 2 + c ** 2:
print("可以构成直角三角形")
p = (a + b + c) / 2
s = math.sqrt(p * (p - a) * (p - b) * (p - c))
c = a + b + c
print("面积为:", s)
print("周长为:", c)
else:
raise NotRightTriangleError("不是直角三角形")
elif b > a and b > c:
if b ** 2 == a ** 2 + c ** 2:
print("可以构成直角三角形")
p = (a + b + c) / 2
s = math.sqrt(p * (p - a) * (p - b) * (p - c))
c = a + b + c
print("面积为:", s)
print("周长为:", c)
else:
raise NotRightTriangleError("不是直角三角形")
else:
if c ** 2 == a ** 2 + b ** 2:
print("可以构成直角三角形")
p = (a + b + c) / 2
s = math.sqrt(p * (p - a) * (p - b) * (p - c))
c = a + b + c
print("面积为:", s)
print("周长为:", c)
else:
raise NotRightTriangleError("不是直角三角形")
try:
a = float(input("请输入三角形的第一条边: "))
b = float(input("请输入三角形的第二条边: "))
c = float(input("请输入三角形的第三条边: "))
calculate_triangle(a, b, c)
except ValueError:
print("输入值错误,请输入数字")
except NotRightTriangleError as e:
print(e)
```
程序流程:
1. 定义一个自定义异常 `NotRightTriangleError`,用于抛出无法构成直角三角形的情况
2. 定义一个函数 `calculate_triangle`,用于计算三角形的面积和周长,并判断是否为直角三角形,如果不是直角三角形,则抛出自定义异常 `NotRightTriangleError`
3. 在主程序中,通过 `input` 函数获取用户输入的三角形三条边,然后调用 `calculate_triangle` 函数进行计算,如果抛出异常,则捕获异常并打印错误信息。
希望能够帮助到你!
异常处理2 编写程序,从键盘上输入三角形三条边,判断能否构成直角三角形,如果能构成直角三角形,则计算其面积和周长,如果不能构成,则抛出异常。
好的,我可以帮你编写这个程序。以下是代码示例:
```python
import math
class TriangleError(Exception):
pass
try:
a = float(input("请输入三角形第一条边的长度:"))
b = float(input("请输入三角形第二条边的长度:"))
c = float(input("请输入三角形第三条边的长度:"))
if a + b <= c or a + c <= b or b + c <= a:
raise TriangleError("无法构成三角形!")
if a > b and a > c:
if a ** 2 == b ** 2 + c ** 2:
print("直角三角形")
perimeter = a + b + c
p = perimeter / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("面积为:", area)
print("周长为:", perimeter)
else:
print("非直角三角形")
elif b > a and b > c:
if b ** 2 == a ** 2 + c ** 2:
print("直角三角形")
perimeter = a + b + c
p = perimeter / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("面积为:", area)
print("周长为:", perimeter)
else:
print("非直角三角形")
else:
if c ** 2 == a ** 2 + b ** 2:
print("直角三角形")
perimeter = a + b + c
p = perimeter / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("面积为:", area)
print("周长为:", perimeter)
else:
print("非直角三角形")
except ValueError:
print("请输入数字!")
except TriangleError as e:
print(e)
```
程序运行时,会提示用户输入三角形三条边的长度。如果输入的三条边无法构成三角形,则会抛出`TriangleError`异常;否则,会根据三边长度判断是否为直角三角形,并计算面积和周长输出。如果输入不是数字,则会抛出`ValueError`异常。
希望这个程序能够解决你的问题,如果还有其他问题,欢迎随时问我。
阅读全文