输入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出yes和三角形面积(结果保留2位小数),否则输出no。
时间: 2023-05-31 17:18:01 浏览: 513
### 回答1:
可以使用三角形的性质,即任意两边之和大于第三边,来判断能否以a,b,c为三个边长构成三角形。
具体实现可以使用if语句来判断,如果a+b>c且a+c>b且b+c>a,则可以构成三角形,此时可以使用海伦公式计算三角形面积,公式为:
s = (a+b+c)/2
area = sqrt(s(s-a)(s-b)(s-c))
其中,sqrt表示开方,s表示半周长,即(s=a+b+c)/2。
如果不能构成三角形,则直接输出no即可。
完整代码如下:
a = float(input("请输入a: "))
b = float(input("请输入b: "))
c = float(input("请输入c: "))
if a+b>c and a+c>b and b+c>a:
s = (a+b+c)/2
area = (s*(s-a)*(s-b)*(s-c))**.5
print("yes, 三角形面积为:%.2f" % area)
else:
print("no")
### 回答2:
判断三个数能否作为三角形的三个边长,我们需要根据三角形的性质:任意两边之和大于第三边。
具体实现过程如下:
1. 将三个数从小到大排序,方便比较大小。
2. 判断a+b是否大于c,b+c是否大于a,a+c是否大于b。若满足条件则能构成三角形,否则不能构成。
3. 若能构成三角形,则根据海伦公式求面积。海伦公式为:s = (a+b+c)/2,S = sqrt(s(s-a)(s-b)(s-c))。
4. 最后输出结果。
以下是具体代码实现:
```
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
double a, b, c;
cin >> a >> b >> c;
if (a > b) swap(a, b); // 从小到大排序
if (b > c) swap(b, c); // 从小到大排序
if (a > b) swap(a, b); // 从小到大排序
if (a + b > c && b + c > a && a + c > b) // 判断是否能构成三角形
{
double s = (a + b + c) / 2.0;
double area = sqrt(s * (s - a) * (s - b) * (s - c));
cout << "yes " << fixed << setprecision(2) << area << endl;
}
else
{
cout << "no" << endl;
}
return 0;
}
```
注意事项:
1. 要包含cmath和iomanip头文件。
2. 浮点数输出时需要使用fixed和setprecision控制小数位数。
### 回答3:
三角形是由三条边组成的图形,而且满足任意两边之和大于第三边,任意两边之差小于第三边。根据这个性质,判断三个数a,b,c能否构成三角形的方法是:将a、b、c按从小到大排序,然后判断a+b>c是否成立即可。
如果a、b、c能构成三角形,则可用海伦公式求出其面积。海伦公式是指:利用三角形的三边长计算三角形的半周长p,再用数学公式S=sqrt(p*(p-a)*(p-b)*(p-c))求面积S。其中sqrt表示开方运算,*表示乘法运算。
下面是一段Python程序,实现了输入三个数a,b,c,并判断它们能否构成三角形,若能,则输出yes和三角形面积(结果保留2位小数),否则输出no。
```python
a = float(input('请输入第一个数a:'))
b = float(input('请输入第二个数b:'))
c = float(input('请输入第三个数c:'))
if a+b>c and a+c>b and b+c>a:
p = (a+b+c)/2
S = (p*(p-a)*(p-b)*(p-c))**0.5
print('yes,三角形面积为%.2f' % S)
else:
print('no')
```
以上程序中,input()函数用于获取用户输入的数值,并将其转换为float类型。if语句中的条件判断,使用了Python中的逻辑运算符and,表示所有条件都必须成立才能执行下面的代码。海伦公式中使用了**运算符,表示乘方运算。print()函数用于输出结果,其中%.2f表示浮点型数据保留2位小数。
阅读全文