这个怎么编写程序,求解

2025-03-09 21:05:00
推荐回答(2个)
回答1:

#include
#include

//任意两边之和要大于第三边
bool CanMakeTriangle(float a, float b, float c)
{
if ((a + b) <= c)
{
return false;
}

if ((a + c) <= b)
{
return false;
}

if ((b + c) <= a)
{
return false;
}

return true;
}

/*(海伦公式)
(p=(a+b+c)/2)
S=√[p(p-a)(p-b)(p-c)]
=(1/4)√[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]*/
float CalcS(float a, float b, float c)
{
return sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / 4;
}

int main()
{
float a = 3;
float b = 4;
float c = 4;
float s = 0;

printf("请输入3个数字,以空格隔开,最后按回车:\n");

scanf_s("%f", &a);
scanf_s("%f", &b);
scanf_s("%f", &c);

if (true != CanMakeTriangle(a, b, c))
{
printf("不构成三角形\n");
return -1;
}

s = CalcS(a, b, c);
printf("构成三角形,其面积等于 %f\n", s);

return 0;
}

回答2:

可以判断一下构成三角形的必要条件