永发信息网

在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小.

答案:1  悬赏:30  手机版
解决时间 2021-03-07 13:12
  • 提问者网友:玫瑰园
  • 2021-03-07 02:00
题目描述
神算子瑛姑在计算几何题时遇到了一个这样的问题:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。注:夹角的范围[0,180],两个点不会在圆心出现。

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

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

样例输入
2
1 1 2 2
1 1 1 0
样例输出
0.00
45.00

我的答案:
#include<stdio.h>
#include<math.h>
int main()
{
int n;
double pi=2*asin(1);
double x1,x2,y1,y2,j1,j2,j;
while(scanf("%d",&n)!=EOF)
{
while(n--)
{
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
j1=atan(1.0*y1/x1)*180/pi;
j2=atan(1.0*y2/x2)*180/pi;
j=abs(j1-j2);
printf("%.2f\n",j);
}
}
return 0;
}
感觉没错啊?怎么老是显示答案错误???
最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-03-07 02:32
while(scanf("%d",&n)!=EOF) {...} 无限循环下去,它只要你 n 次,没要你用 ctrl+Z 结束。
改为: while(scanf("%d",&n)!= 1) { 空} ;
另外 角度要考虑 4 个象限。例如 -1 -1 0 1 你得多少?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯