计算角度(简单几何)
2 1 1 2 2 1 1 1 0
0.00 45.00
公式可知:a=sqrt(x1*x1+y1*y1) b=sqrt(x2*x2+y2*y2) c=sqrt(pow(abs(x2-x1),2)+pow(abs(y2-y1),2)) cosC=(a*a+b*b-c*c)/(2*a*b) C=acos(cosC) 最后注意是要求角度,此时C是弧度,所以真正的结果是 C*180/PI
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #define PI acos(-1.0) using namespace std; int main() { int t; scanf("%d",&t); while(t--) { double x1,y1,x2,y2,a,b,c,jiao; scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); a=sqrt(x1*x1+y1*y1); b=sqrt(x2*x2+y2*y2); c=sqrt(pow(abs(x2-x1),2)+pow(abs(y2-y1),2)); jiao=acos((a*a+b*b-c*c)/(2.0*a*b)); printf("%.2lf\n",(double)jiao*(180.0/PI)); } return 0; }