1.1已知三角形的三条边a,b和c,求c边上的高

SKKK 发布于 2024-10-25 402 次阅读


如题,数据都是以厘米为单位,求三角形面积的公式使用海伦公式

#include <stdio.h>
#include <math.h> 
int main()
{
  int a, b, c, h;
  double p, s;
     scanf("%d %d %d", &a, &b, &c);
     p = (a + b + c) / 2.0;
     s = sqrt(p * (p - a) * (p - b) * (p - c));
     h = 2 * s / c;
     printf("%d", h);
    return 0;
}

要注意的是这题要用到sqrt()函数,所以我们需要调用math库:

#include <math.h>

首先我们要用scanf()函数将三边的长度输入程序内:

int a,b,c,h; //定义三边长,以及高
double p,s;  //定义公式中的P,S
scanf("%d %d %d", &a, &b, &c); //注意,scanf括号内的格式与你在程序输入格式应当相同

已知三条边a,b,c,求P的值就需要将三边之和除2:

p = (a + b + c) / 2.0;

求出P值后,我们就可以使用海伦公式求出三角形面积:

s = sqrt(p * (p - a) * (p - b) * (p - c)); //sqrt函数用来开根号

得出三角形面积后,我们使用h=2×三角形的面积÷三角形的对应边:

h = 2 * s / c;

最后,输出求出的高:

printf("%d", h); //不要在h前加&符号,这会导致输出h值的地址

此题解法如上