1、第3章 项目式案例【例3.1】 已知地球的赤道半径为6377.830千米,并已知位于东半球赤道上两点的经度值(单位为度),编程序计算这两点之间的球面距离。编程思路:在赤道上两点之间的球面距离,就是这两点之间劣弧的长度。根据弧长公式,首先求出两点之间圆心角的大小(单位弧度),然后乘上赤道半径即可。源程序:#include #define PI 3.14159int main(void)float r,a,b,t,arc; r=6377.830; printf(请输入东半球两点的经度值(单位为度):n); scanf(%f,&a); scanf(%f,&b); t=a-b; t=t/180*PI;
2、 /*度化为弧度*/ arc=t*r; printf(两点之间的球面距离=%f千米n,arc); return 0;在上面的程序中,若第一个经度值小于第二个经度值,则经度差为负值,从而导致最终的球面距离为负值。不过,可以利用绝对值函数解决这个问题。改进版源程序:#include #include #define PI 3.14159int main(void)float r,a,b,t,arc; r=6377.830; printf(请输入东半球两点的经度值(单位为度):n); scanf(%f%f,&a,&b); t=fabs(a-b); t=t/180*PI; /*度化为弧度*/ arc=t*r; printf(两点之间的球面距离=%f千米n,arc); return 0;