C语言 定义计算四边形面积的函数

问题描述:

C语言 定义计算四边形面积的函数
定义计算四边形面积的函数
来源 李宇(P76 10)
描述
如果四边形四个边的长度分别为a、b、c、d,一对对角之和为2α,则其面积为:
S = sqrt((s-a)*(s-b)*(s-c)*(s-d) - a*b*c*d*cos2α);
其中s = (a+b+c+d)/2;
定义一个函数计算任意四边形的面积,前提是给出四边形的各条边长度,以及一对对角的和.
关于输入
输入分五行
前四行每行输入一个浮点数,分别是四边形四条边的长度.
第五行输入一个0到360之间的浮点数,表示四边形一对对角之和(角度制).
关于输出
输出只有一行,输出计算得到的四边形面积,结果保留4位小数.
当公式中根号内的值计算出负值时,应给出Invalid input的提示.
例子输入
3
4
5
5
145
例子输出
16.6151
提示
cos()函数的参数应为弧度值,PI = 3.1415926,浮点数用double类型.
1个回答 分类:综合 2014-09-26

问题解答:

我来补答
#define PI 3.1415926
#include
#include
int main()
{
double a,b,c,d;
double s,S,e,m,p;
scanf("%lf\n",&a);
scanf("%lf\n",&b);
scanf("%lf\n",&c);
scanf("%lf\n",&d);
scanf("%lf\n",&m);
p=m* PI/(2*180);
s = (a+b+c+d)/2;
S = sqrt((s-a)*(s-b)*(s-c)*(s-d) - a*b*c*d*cos(p)*cos(p));
if ((s-a)*(s-b)*(s-c)*(s-d) - a*b*c*d*cos(p)*cos(p)>=0)
{
printf("%.4lf",S);
}
else
printf("Invalid input");

return 0;
}
 
 
展开全文阅读
剩余:2000