C语言计算两纬线间子午线弧长
1.输入两个纬度,计算纬线间的子午圈弧长。
输入2,选择克氏椭球。输入纬度1为1°2′3″,纬度2为51°52′53″,计算出两纬线间的子午圈弧长为5541608.672米。
2.部分源代码
#include<stdio.h>
#include<math.h>
#define guoji75_a 6378140.00
#define guoji75_b 6356755.2881575287
#define PI 3.1415926535897932
#define keshi_a 6378245.0
#define keshi_b 6356863.0187730473
double zwxhc(int w[],int tuoqiu)
{
double X,B;
******
}
main()
{
double a, e1,e2,M,N,R,_a,_b,A,B,X,P,x1,x2;
int weidu[3],fangweijiao[3],L1[3],L2[3],B1[3],B2[3],weidu1[3],weidu2[3];
int i,fg;
printf("请输入计算所用的椭球(国际75椭球请输1,克氏椭球请输2,回车结束。):\n\n");
scanf_s("%d", &fg);
if (fg == 1)
{
******
}
else if (fg == 2)
{
******
}
printf("下面计算两条纬线间的子午线弧长\n");
printf("请输入第一个纬度:(度分秒之间用空格隔开,按回车结束)\n");
for(i=0;i<3;i++)
scanf_s("%d",&weidu1[i]);
x1 = zwxhc(weidu1,fg);
printf("请输入第二个纬度:(度分秒之间用空格隔开,按回车结束)\n");
for(i=0;i<3;i++)
scanf_s("%d",&weidu2[i]);
x2 = zwxhc(weidu2,fg);
printf("纬度%d°%d′%d″到纬度%d°%d′%d″之间的子午线弧长为%f米\n\n",weidu1[0],weidu1[1],weidu1[2],weidu2[0],weidu2[1],weidu2[2],x2-x1);
}