匯東網


NOJ - T008

[編輯] [转简体]
|
作者:huidong | 分類:【編程】NOJ 和 C 程序設計習題
[ 32 瀏覽 0 評論 4 贊 4 踩 ]

概要
注意輸入數據其實是角度,不是弧度

正文

#include <stdio.h>
#include <math.h>

const double PI = 3.1415926535;

const double r = 6371.0;

double hav(double _X)
{
    return (1 - cos(_X)) / 2;
}

double toRad(double _Angle)
{
    return _Angle * PI / 180;
}

int main()
{
    double _x1, _y1, _x2, _y2;
    double x1, y1, x2, y2;
    scanf("%lf %lf%lf %lf", &_x1, &_y1, &_x2, &_y2);

    x1 = toRad(_x1);
    x2 = toRad(_x2);
    y1 = toRad(_y1);
    y2 = toRad(_y2);

    double hav_d_r = hav(x2 - x1) + cos(x1) * cos(x2) * hav(y2 - y1);
    double d = r * acos(1 - 2 * hav_d_r);

    printf("%.4lfkm", d);

    return 0;
}


[ 4] [ 4]


 評論區  0 條評論

+ 添加評論