1178: 零起点学算法85——夹角有多大I

爱被打了一巴掌 2022-10-24 06:06 223阅读 0赞

Description

这次xhd面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。

注:夹角的范围[0,180],两个点不会在圆心出现。

Input

输入数据的第一行是一个数据T,表示有T组数据。
每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,这些实数的范围是[-10000,10000]。

Output

对于每组输入数据,输出夹角的大小精确到小数点后两位。

" class="reference-link">Sample Input 5f8f312f51791b8bb0ed0ae07c2ffa43.gif

  1. 2
  2. 1 1 2 2
  3. 1 1 1 0

Sample Output

  1. 0.00
  2. 45.00

Source

零起点学算法

Code

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<math.h>
  4. int main()
  5. {
  6. int s;
  7. double x1,x2,y1,y2,m,a,b,c,PI=3.1415926;
  8. scanf("%d",&s);
  9. while(s--)
  10. {
  11. scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
  12. a=sqrt(x1*x1+y1*y1);
  13. b=sqrt(x2*x2+y2*y2);
  14. c=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
  15. m=(a*a+b*b-c*c)/(2*a*b);
  16. m=acos(m);
  17. m=m*180/PI;
  18. printf("%.2lf\n",m);
  19. }
  20. return 0;
  21. }

发表评论

表情:
评论列表 (有 0 条评论,223人围观)

还没有评论,来说两句吧...

相关阅读