输入三条边长,如果三条边长不满足构成三角形的条件,则继续输入,直到满足构成三角形的条件。如果能构成三角形,则求出三角形面积。编程
时间: 2024-05-04 22:22:48 浏览: 12
很高兴回答你的问题!
这是一个比较简单的算法,我们可以通过循环来实现。代码如下:
```
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
do {
printf("请输入三角形的三条边长:\n");
scanf("%lf%lf%lf", &a, &b, &c);
} while (a + b <= c || a + c <= b || b + c <= a);
double p = (a + b + c) / 2; // 计算半周长
double area = sqrt(p * (p - a) * (p - b) * (p - c)); // 计算面积
printf("三角形的面积为:%lf\n", area);
return 0;
}
```
代码中,我们使用了一个 do-while 循环来读入三角形的三条边长,并判断是否能构成三角形。如果不能构成,则继续输入;否则,计算半周长和面积,并输出结果。
需要注意的是,由于题目要求输入的是浮点型数字,因此我们使用了 `%lf` 来读取数字。另外,计算三角形面积的公式为海龙公式,需要使用 math.h 库中的 sqrt 函数来计算。
相关问题
输入三条边长 如果三条边长不满足构成三角形的条件,则继续输入,直到满足构成三角形的条件。如果能构成三角形,则求出三角形面积。编程
好的,我可以帮你解决这个问题。以下是 Python 代码实现:
```python
import math
# 判断是否能构成三角形
def is_triangle(a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
return False
return True
# 获取三角形面积
def get_triangle_area(a, b, c):
p = (a + b + c) / 2
s = math.sqrt(p * (p - a) * (p - b) * (p - c))
return s
# 输入三条边长
while True:
a = float(input('请输入第一条边长:'))
b = float(input('请输入第二条边长:'))
c = float(input('请输入第三条边长:'))
if is_triangle(a, b, c):
s = get_triangle_area(a, b, c)
print(f'能构成三角形,三角形面积为:{s}')
break
else:
print('输入的边长不能构成三角形,请重新输入。')
```
你可以将以上代码复制到 Python 编辑器中运行,它会要求你输入三条边长,并根据输入的数据判断是否能构成三角形,如果不能,则会提示你重新输入,直到输入的边长能构成三角形。如果输入的边长可以构成三角形,则会求出三角形的面积。
python输入三条边长如果能构成三角形就计算周长和面积
以下是Python代码实现:
```python
import math
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if a + b > c and a + c > b and b + c > a:
# 如果能构成三角形
perimeter = a + b + c # 周长
p = (a + b + c) / 2 # 半周长
area = math.sqrt(p * (p - a) * (p - b) * (p - c)) # 面积
print("周长为:{:.2f}".format(perimeter))
print("面积为:{:.2f}".format(area))
else:
print("无法构成三角形")
```
运行结果:
```
请输入第一条边长:3
请输入第二条边长:4
请输入第三条边长:5
周长为:12.00
面积为:6.00
```