#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,p,s;
printf("请输入三角形三边长:");
scanf("%f%f%f",&a,&b,&c);
p = (a+b+c)/2;
s = sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形面积为:%.1f\n",s);
}
#include <stdio.h>//添加了判断三边能否构成三角形
#include <math.h>
void main()
{
float a,b,c,p,s;
printf("请输入三角形三边长:");
scanf("%f%f%f",&a,&b,&c);
if(a+b<=c || a+c<=b || b+c<=a)
printf("该三边长无法构成三角形\n");
else
{
p = (a+b+c)/2;
s = sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形面积为:%.1f\n",s);
}
}
追问不需要判断三条边是否可以构成三角形吗
追答你题目也没要求要判断啊,1 2 3 确实不能构成三角形,但是代入海伦公式的结果是0,符合题意,所以直接用了。
追问好吧
为什么按这个程序输入456结果是错的,就是我用计算器按海伦公式算出来是9.9,用程序算出来只是6.5