资源描述:
《山东理工大学c语言实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、山东理工大学C语言实验【实验一】1.已知地球的平均半径为6371千米,假设在地球的同一纬度上,有两个处于不同经度的城市A、B,编程序求出这两个城市之间的地面距离。输入数据样例:例如,欲求北纬30度上东经10度到东经50度的距离,输入格式应为:301050#include#include#definePI3.1415926//定义常量main(){floata,b,c,s,m;scanf("%f%f%f",&a,&b,&c);//输入纬度和两个经度,规定东经为正,西经为负m=fabs(b-c);if(m<180)//经度差小于180s=2*6371*
2、asin(cos(PI/180*a)*sin(PI/360*m));//推出数学计算公式转换为c语言elses=2*6371*asin(cos(PI/180*a)*sin(PI/360*(360-m)));printf("距离为%f",s);}2.地球的平均半径为6371千米,已知地球上两个城市A、B的经度和纬度,编程序求出这两个城市之间的地面距离。#include#include#definePI3.1415926//定义常量main(){floata1,a2,b1,b2,m,s;scanf("%f%f%f%f",&a1,&a2,&b1,&b
3、2);//输入纬度和两个经度,规定东经为正,西经为负m=fabs(a1-b1);if(m<180)//经度差小于180s=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语言else//经度差大于180s=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-
4、m)))));//推出数学计算公式转换为c语言printf("%f",s);//输出结果}【实验二】1.编程序实现:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。#include13山东理工大学C语言实验main(){inty,n,m,w,p,s,u;printf("请输入一个年份:");scanf("%d",&y);n=y%400*97;u=y-y%400*400;m=u/4-u/100;p=m+n;s=366*p+365*(y-p-1);w=s%7;switch(w){case1:w=1;break
5、;case2:w=2;break;case3:w=3;break;case4:w=4;break;case5:w=5;break;case6:w=6;break;case0:w=7;break;}printf("总天数=%d,该年的1月1日为星期%d",s,w);}2.输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。 #includevoidmain(){inty,m,d,c,s,w;printf("请输入8位年月日,以空格隔开:");scanf("%d%d%d",&y,&m,&d);if(m==1)c=
6、d;elseif(m==2)c=31+d;elseif(m==3)c=31+28+d;elseif(m==4)c=31+28+31+d;elseif(m==5)c=31+28+31+30+d;elseif(m==6)c=31+28+31+30+31+d;elseif(m==7)c=31+28+31+30+31+30+d;elseif(m==8)c=31+28+31+30+31+30+31+d;elseif(m==9)c=31+28+31+30+31+30+31+31+d;elseif(m==10)c=31+28+31+30+31+30+31+31+30+d;elseif(m==11
7、)c=31+28+31+30+31+30+31+31+30+31+d;elseif(m==12)c=31+28+31+30+31+30+31+31+30+31+30+d;if(m>2)13山东理工大学C语言实验{if(y%100==0){if(y%400==0)c=c+1;}elseif(y%4==0)c=c+1;}s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c;w=s%7;switch(w){case0:printf("星期日")