新人求解,我这个程序错在哪里?
程序代码:
#include<stdio.h> #include<math.h> main() { double a,b,c,d,h,e,f; scanf("%f,%f,%f,%f",&a,&b,&c,&d); e=(d*d+(b-a)*(b-a)-c*c )/2*d*(b-a); f=sqrt(1-e*e); h=d*f; printf("%f",(a+b)*h/2.0); return 0; }
已知梯形四边求梯形面积,为什么警告从double到float可能丢失数据?
算法解释:做一斜边的平行四边形然后利用余弦函数求一底角余弦值,然后求出梯形高,最后用梯形面积公式求梯形面积。