精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • 用C++求地球兩點(diǎn)間距離

    用C++求地球兩點(diǎn)間距離
    已知地球的平均半徑為6371.393千米,假設(shè)在地球的同一緯度上,有兩個處于不同經(jīng)度的點(diǎn)A、B,編程序求出這兩點(diǎn)之間的直線距離(即弦長)、弦長所對球心角的大?。▎挝粸槎龋┮约扒蛎婢嚯x(即劣弧的長度).
    要求:
    ⑴計算結(jié)果要有盡可能高的精確度.
    ⑵ 要考慮到橫跨東、西兩個半球的情況.(提示:東經(jīng)為正,西經(jīng)為負(fù);北緯為正,南緯為負(fù).)
    ⑶ 要求輸入數(shù)據(jù)之間以空格分隔.例如,北緯30度上東經(jīng)10度到東經(jīng)50度的距離,輸入格式應(yīng)為:30 10 50
    其他人氣:921 ℃時間:2020-05-11 18:49:49
    優(yōu)質(zhì)解答
    根據(jù)你的題目寫的


    #include <iostream>
    #include <string>
    using namespace std;
    #define  EARTH_RADIUS  6371.393
    #define PI 3.14159
    int main(int argc,char ** argv)
    {
    \x05while(1)
    \x05{
    \x05\x05char szInput[128];
    \x05\x05string strInput;
    \x05\x05string strTmp;
    \x05\x05char szTmp[128];
    \x05\x05string::size_type Index;
    \x05\x05float LatLongitude[3]={0};\x05//經(jīng)緯度
    \x05\x05float Radius;
    \x05\x05float ArcLen;\x05\x05//弧長
    \x05\x05float ChordLen;\x05\x05//弦長
    \x05\x05float LonDiff;\x05//圓心角
    \x05\x05int i=0;
    \x05\x05cout<<"-----------------------------------------------"<<endl;
    \x05\x05cout<<"請輸入經(jīng)緯度"<<endl;
    \x05\x05cin.clear();
    \x05\x05cin.sync();
    \x05\x05cin.get(szInput,sizeof(szInput));
    \x05\x05strInput=szInput;
    \x05\x05while((Index=strInput.find(" ")) != string::npos)
    \x05\x05{
    \x05\x05\x05strTmp=strInput.substr(0,Index);
    \x05\x05\x05_snprintf(szTmp,sizeof(szTmp),"%s",strTmp.c_str());
    \x05\x05\x05sscanf(szTmp,"%f",&(LatLongitude[i]));
    \x05\x05\x05strInput=strInput.substr(Index+1);
    \x05\x05\x05i++;
    \x05\x05}
    \x05\x05_snprintf(szTmp,sizeof(szTmp),"%s",strInput.c_str());
    \x05\x05sscanf(szTmp,"%f",&(LatLongitude[i]));
    \x05\x05if(LatLongitude[0]>90 || LatLongitude[0]<-90)
    \x05\x05{
    \x05\x05\x05cout<<"輸入緯度有誤"<<endl;
    \x05\x05\x05continue;
    \x05\x05}
    \x05\x05if(LatLongitude[1]<-180 || LatLongitude[1]>180 || LatLongitude[2]<-180 || LatLongitude[2]>180)
    \x05\x05{
    \x05\x05\x05cout<<"輸入經(jīng)度有誤"<<endl;
    \x05\x05\x05continue;
    \x05\x05}
    \x05\x05Radius=EARTH_RADIUS*sin((90-LatLongitude[0])/180*PI);
    \x05\x05if(LatLongitude[2]>LatLongitude[1])
    \x05\x05{
    \x05\x05\x05LonDiff=LatLongitude[2]-LatLongitude[1];


    \x05\x05}
    \x05\x05else
    \x05\x05{
    \x05\x05\x05LonDiff=LatLongitude[1]-LatLongitude[2];
    \x05\x05}\x05
    \x05\x05if(LonDiff>180)
    \x05\x05{
    \x05\x05\x05LonDiff=360-LonDiff;
    \x05\x05}
    \x05\x05ChordLen=Radius*sin(LonDiff/2/180*PI)*2;
    \x05\x05ArcLen=2*Radius*PI*(LonDiff/360);
    \x05\x05cout<<"兩點(diǎn)之間的弦長:"<<ChordLen<<"千米"<<endl;
    \x05\x05cout<<"弦長所對應(yīng)的圓心角:"<<LonDiff<<"度"<<endl;
    \x05\x05cout<<"兩點(diǎn)之間的劣弧長:"<<ArcLen<<"千米"<<endl;


    \x05}
    \x05
    \x05return 0;
    }


    運(yùn)行
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版