Q1=(int)acos((abs(xe-x)/r));
发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都人造雾等,在网站建设公司、全网营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
Q2=(int)acos((abs(x-x0))/r);
改成
Q1=(int)acos((fabs(xe-x)/r));
Q2=(int)acos((fabs(x-x0))/r);
因为原来的acos里面的 都是整数相除,结果是一个整数,发生截断了。fabls返回的是double,再相除就没有问题。
用自带的函数库
#include stdio.h
#include math.h
#define M_PI 3.14159265358979323846
int main(void)
{
printf("%.4f\n", sin(M_PI / 2));
printf("%.4f\n", cos(M_PI / 3));
printf("%.4f\n", asin(1.00));
printf("%.4f\n", acos(0.50));
printf("%.4f\n", tan(M_PI / 4));
printf("%.4f\n", atan(1.00));
return 0;
}
#include math.h //包含数学函数库就可以了
//可以使用atan() asin(), acos()等进行反三角函数计算
double 改成float
我系统里是asin,不是arcsin
其它以无问题,运行良好而正确。
double 与float计算没太大区别,输入输出有区别。printf和scanf函数根据"%f"会把后面的参数看成float.
printf,scanf没有认double的能力。
包含头文件 math.h
反3角函数有 acos(double),asin(double),atan(double),atan(double,double),
返回值 double 型,弧度值。转角度要 *180.0/3.1416
例如:
#include stdio.h
#includestdlib.h
#includemath.h
int main()
{
double x=0.5;
printf("acos=%.2lf degrees\n",acos(x) * 180.0/3.1416);
printf("asin=%.2lf degrees\n",asin(x) * 180.0/3.1416);
printf("atan=%.2lf degrees\n",atan(x) * 180.0/3.1416);
printf("atan2=%.2lf degrees\n",atan2(1.0,2.0) * 180.0/3.1416);
return 0;
}
包含头文件 math.h
反3角函数有 acos(double),asin(double),atan(double),atan(double,double),
返回值 double 型,弧度值。转角度要 *180.0/3.1416
例如:
#include stdio.h
#includemath.h
int main()
{
double x=0.5;
printf("acos=%.2lf degrees\n",acos(x) * 180.0/3.1416);
printf("asin=%.2lf degrees\n",asin(x) * 180.0/3.1416);
printf("atan=%.2lf degrees\n",atan(x) * 180.0/3.1416);
printf("atan2=%.2lf degrees\n",atan2(1.0,2.0) * 180.0/3.1416);
return 0;
}