作业帮 > 综合 > 作业

我是想作个计算,按计算器太费劲了,就用C语言变了个程序.出错了,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 02:05:09
我是想作个计算,按计算器太费劲了,就用C语言变了个程序.出错了,
公式里:A,R,P,C,K是要输入的参数
其中α用x表示,α1用y表示,α2用z表示.
5个参数都用其小写字母表示,
见图
#include<math.h>
#include<stdio.h>
main()
{
float a,r,p,c,k,x,y,z,l;
printf("input a,r,p,c,k\n");
scanf("%lf%lf%lf%lf%lf",&a,&r,&p,&c,&k);
x=acos(c/k);
y=acos((c*c+k*k-(p-r)*(p-r))/(2*k*c));
z=acos((c*c+k*k-(p+r)*(p+r))/(2*k*c));
l=a*tan(x-y)+a*tan(z-x);
printf("x=%lf,y=%lf,z=%lf,l=%lf\n",l);
}
运行后,出现floating point error:domain
还有floating point error:divided by 0.
你的输入输出%lf是双精度的,你主程序定义的单精度float改成double把,double是双精度,还有你看下你主程序那scanf("%lf%lf%lf%lf%lf%",&a,&r,&p,&c,&k);是不是多了个%.