含山东理工大学C语言上机作业的全部内容,欢迎广大同胞下载。
山东理工大学C语言上机作业(全部)
计算球面距离 第一题 #include #include
#define PI 3.1415926//定义常量 main() { }
/*资环学院 矿物加工1101 学号1111105006 王浩林*/ /*版本VC++6.0*/
/*错误分析:计算公式推导出现问题*/ /*制作日期:2012年3月5日*/ /*输入数据:60 30 60*/ /*输出数据:距离为1653.573608*/ 第二题
#include #include
#define PI 3.1415926//定义常量 main() { }
/*资环学院 矿物加工1101 学号1111105006 王浩林*/ /*版本VC++6.0*/
/*错误分析:计算公式推导出现问题*/
float a1,a2,b1,b2,m,s;
scanf("%f%f%f%f",&a1,&a2,&b1,&b2);//输入纬度和两个经度,规定东经为正,西经为负 m=fabs(a1-b1); if(m<180)//
经度差小于180
s=6371*2*asin(sqrt(0.5*(1-sin(PI/180*a2)*sin(PI/180*b2)-cos(PI/180*a2)*cos(PI/180*b2)* cos(PI/180*m))));//推出数学计算公式转换为c语言
s=6371*2*asin(sqrt(0.5*(1-sin(PI/180*a2)*sin(PI/180*b2)-cos(PI/180*a2)*cos(PI/180*b2)* cos(PI/180*(360-m)))));//推出数学计算公式转换为c语言 float a,b,c,s,m;
scanf("%f%f%f",&a,&b,&c);//输入纬度和两个经度,规定东经为正,西经为负 m=fabs(b-c); if(m<180) else//
s=2*6371*asin(cos(PI/180*a)*sin(PI/360*(360-m)));//推出数学计算公式转换为c语言 printf("距离为%f\n",s);//输出结果
//
经度差小于180
s=2*6371*asin(cos(PI/180*a)*sin(PI/360*m));//推出数学计算公式转换为c语言
else// 经度差大于180
printf("%f\n",s);//输出结果