C语言,求两个点分别和原点的连线的夹角的大小

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

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

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

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

Sample Input
2
1 1 2 2
1 1 1 0

Sample Output
0.00
45.00

#include “stdio.h” /* printf /
#include “math.h” /
atan */
#define PI 3.14159265
int main ()
{
double x1, y1, x2, y2;
double alh1, alh2, result;
printf("Please input the first dot.\n");
scanf("%f %f", &x1, &y1);
printf("Please input the second dot.\n");
scanf("%f %f", &x2, &y2);
alh1 = atan (y1/x1) * 180 / PI; //将弧度转换为度
alh2 = atan (y2/x2) * 180 / PI; //将弧度转换为度
result = abs(alh2 - alh1);
printf ("The angle1 of two line is %f degrees.\n", result );
return 0;
}