问题描述:
输入三角形三边长a,b,c(保证能构成三角形),输出三角形面积。
输入:一行三个用一个空格隔开的实数a,b,c,表示三角形的三条边长。
输出:输出三角形的面积,答案保留四位小数。
样例输入3 4 5,样例输出6.0000。
数据范围限制:1<=a,b,c<=10000
———————————————————————————
问题分析:
数学基础:
已知三角形的三边,计算三角形面积,需要用到海伦公式:
即p=(a+b+c)/2
算法:
输入三个边长,套用海伦公式计算面积,并输出。
可以先判断是否可以构成三角形,即任意两边之和大于第三边,可以构成三角形情况下再计算,可以增加严谨性。
_____________________________________________________________
代码:
#include
#include
int main()
{
printf("请依次输入三个边长\n");
double a,b,c,p,s;
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a) //判断是否可以构成三角形。
{
p=(a+b+c)/2;//计算半周长
s=sqrt(p*(p-a)*(p-b)*(p-c));//套用海伦公式,计算面积
printf("面积为%lf\n", s);//输出结果
}
else printf("无法构成三角形\n");//输入不合法,提示。
return 0;
}
你有其他的算法吗,欢迎留言区讨论!