linux c下求已知三条边的三角形的面积

首先使用的算法有两种:

1.用余弦定理求出一个角的余弦,然后求出正弦角A,然后用s=1/2*(a*b*sinA)来求面积;

2.直接用海伦公式,p=(a+b+c)/2,s=sqrt(p*(p-a)*(p-b)*(p-c));

然后写完的代码如下:

#include<stdio.h>
#include<math.h>
void main()
{
        float p=0,a=0,b=0,c=0,ss=0,s=0;
        printf("请输入三条边:");
        scanf("%f %f %f",&a,&b,&c);
        p=(a+b+c)/2;
        ss=p*(p-a)*(p-b)*(p-c);
        s=sqrt(ss);
        printf("三角形的面积是%f\n",s);
}
然后编译的时候注意了,要使用gcc -o *.o *.c -lm

gcc编译器不能直接连接到libm.so这个数学库,而且到/usr/include的math.h文件里面找不到sqrt这个函数的声明,g++可以直接编译(还不知道为什么),常用的库链接还有 posix线程,要用-lpthread。

猜你喜欢

转载自blog.csdn.net/ye1391/article/details/79167653