纯数学题,很多种解法,我用了两种解法
根据x表示与x轴的夹角,tanx=y/x;
#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; #define PI 3.141592653 int main() { double x1,y1,x2,y2,a1,a2,a3; int n; scanf("%d",&n); while(n--) { scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); a1=atan2(y1,x1); a2=atan2(y2,x2); a3=fabs(a1-a2); printf("%.2lf ",a3*180/PI); } return 0; }
根据x表示所求夹角,cosx=向量a 点乘 向量b/模a*模b
#include <cstdio> #include <cmath> using namespace std; #define PI 3.141592653; int main() { int n; scanf("%d",&n); while(n--) { double x1,x2,y1,y2,t,a,b,c; scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); a=x1*x2+y1*y2; b=sqrt(x2*x2+y2*y2); c=sqrt(x1*x1+y1*y1); t=acos(a/b/c)*180/PI; printf("%.2lf ",t); } return 0; }