#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)行
![](http://h.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=1de01ff8372ac65c67506e75cbc29e29/b999a9014c086e063af2fcd300087bf40bd1cbd4.jpg)