UVA11817

来源:互联网 发布:肯特大学 知乎 编辑:程序博客网 时间:2024/05/01 18:43

做这道题目做到吐血~快哭了

#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <iostream>#include <algorithm>#include <map>#include <set>#include <queue>using namespace std;const double r=6371009;const double pi=atan(1.0)*4;struct Point3{    double x,y,z;    Point3(double x=0,double y=0,double z=0):x(x),y(y),z(z){}};typedef Point3 Vector3;/*Vector3  operator + (Vector3 A,Vector3 B){    return Vector3(A.x+B.x,A.y+B.y,A.z+B.z);}Vector3 operator - (Vector3 A,Vector3 B){    return Vector3(A.x-B.x,A.y-B.y,A.z-B.z);}Vector3 operator /(Vector3 A,double p){    return Vector3(A.x/p,A.y/p,A.z/p);}Vector3 operator *(Vector3 A,double p){    return Vector3 (A.x*p, A.y*p,A.z*p);}double Dot(Vector3 A,Vector3 B){    return A.x*B.x+A.y*B.y+A.z*B.z;}double length(Vector3 A){    return sqrt(Dot(A,A) );}Point3 get_corrd(double a,double b){    Point3 p;    p.x=r*cos(a)*cos(b);    p.y=r*cos(a)*sin(b);    p.z=r*sin(a);    return p;}*/Vector3 operator +(Vector3 A,Vector3 B){return Vector3(A.x+B.x,A.y+B.y,A.z+B.z);}Vector3 operator -(Vector3 A,Vector3 B){return Vector3(A.x-B.x,A.y-B.y,A.z-B.z);}Vector3 operator *(Vector3 A,double p){return Vector3(A.x*p,A.y*p,A.z*p);}Vector3 operator /(Vector3 A,double p){return Vector3(A.x/p,A.y/p,A.z/p);}double Dot(Vector3 A,Vector3 B){return A.x*B.x+A.y*B.y+A.z*B.z;}//点积double Length(Vector3 A){return sqrt(Dot(A,A));}Point3 get_point(double a,double b){    Point3 p;    p.x=r*cos(a)*cos(b);    p.y=r*cos(a)*sin(b);    p.z=r*sin(a);    return p;}int main(){    int n;    scanf("%d",&n);    while(n--)   {        double e[4];        for(int i=0;i<4;i++)        {            scanf("%lf",&e[i]);            e[i]=e[i]/180.0*pi;        }        Point3 a,b;        a=get_point(e[0],e[1]);        b=get_point(e[2],e[3]);        double s1=Length(a-b);        double s2=asin(s1/(2.0*r))*2*r;       // cout<<s1<<" "<<s2<<" "<<endl;        printf("%d\n",(int )(s2-s1+0.5) );    }    return 0;}/*int main(){    int T;    scanf("%d",&T);    while(T--)    {        1double e[4];        for(int i=0;i<4;i++)        {            //输入纬度和经度            scanf("%lf",&e[i]);            e[i]=e[i]/180.0*pi;        }        Point3 a,b;        a=get_point(e[0],e[1]);        b=get_point(e[2],e[3]);        double  s1=Length(a-b);        double s2=asin(s1/(2.0*r))*2*r;        printf("%d\n",(int)(s2-s1+0.5));    }    return 0;}*/
首先,评论一下自己哪里错了,可以这么说,该打括号的地方,全部没有打括号,所以自己做了好久好久~
都哭了~

(int)后面必须打括号呀~

s1/2*r这个地方也没有打括号~

自己真是,越活越蠢了。><

0 0
原创粉丝点击