您的位置:首页 > 运维架构 > Linux

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

2018-01-25 23:16 337 查看
首先使用的算法有两种:

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux c