HDU 2080 夹角有多大

//好吧,水了。。。
#include <cstdio>
#include <cmath>
#define PI 3.1415926
using namespace std;

//返回值是弧度,需要转换成角度
double angle(double x1, double y1, double x2, double y2)
{
    double dtheta,theta1,theta2;
    theta1 = atan2(y1,x1);
    theta2 = atan2(y2,x2);
    dtheta = theta2 - theta1;
    while (dtheta > PI)
        dtheta -= PI*2;
    while (dtheta < -PI)
        dtheta += PI*2;
    return dtheta;
}

int main()
{
    int t;
    double x1, y1, x2, y2;
    scanf("%d", &t);
    while (t--)
    {
        scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);
        printf("%.2lf\n", abs(angle(x1, y1, x2, y2)*180/PI)); //弧度转换成角度
    }
    return 0;
}

 

posted on 2013-06-16 14:33  soul214j  阅读(132)  评论(0)    收藏  举报