已知地球的平均半径为6371.393千米,并已知位于同一纬度上两点的纬度、经度值(单位为度),编写程序计算这两点之间的弦长和球面距离分别是多少千米。要求所有的实数使用double类型,圆周率的近似值取3.141592653589793。 提示:可以用正负来区分北纬与南纬、东经与西经。即北纬为正,南纬为负;东经为正,西经为负。
在第一行中输入一个位于区间[-90,90]内代表纬度的实数;在第二行中输入两个位于区间[-180,180]内代表经度的实数,以空格分隔。
输出弦长和球面距离的值,保留3位小数,以空格分隔,最后换行。
32.6
-56.1 163.8
10090.980 11645.760
#include <stdio.h>
#include <math.h>
#define pi 3.141592653589793
#define R 6371.393
int main()
{double c1,c2;double w,j1,j2,angle,r,a,y;scanf("%lf%lf%lf",&w,&j1,&j2);angle=j1-j2;if(angle<0){angle=-angle;}if(angle>180){angle=360-angle;}if(w<0){w=-w;}w=(w/180)*pi;angle=(angle/180)*pi;r=R*cos(w);if(r<0){r=-r;}c1=sqrt(2*r*r*(1-cos(angle)));y=(2*R*R-c1*c1)/(2*R*R);a=acos(y);c2=a*R;printf("%.3lf %.3lfn",c1,c2);return 0;
}
本文发布于:2024-01-30 14:38:09,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659669120718.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |