Ⅰ 已知地球半径,用c语言编写程序求同一纬度不同经度的两地的距离
#include<stdio.h>
#include<math.h>
int main(void)
{
float r, w, j, pi;//r表示半径,w表示纬度,j表示经度差,纬度和经度的单位都是度,pi表示圆周率
pi=2.0*asin(1.0);
printf("请输入地球半径:r= ");
scanf("%f",&r);
printf("请输入纬度 w= ");
scanf("%f",&w);
printf("请输入两个地点的经度差 j= ");
scanf("%f",&j);
printf("这两个地方的距离里为: %lf\n",r*sin( (90.0-w)/180.0*pi )*( j/180.0*pi ) );
}
Ⅱ 求C语言程序代码
// Microsoft Visual C++ 2010学习版
#include <stdio.h>
double add_thickness(double *thickness_ptr, int *times_ptr)
{
*thickness_ptr *= 2;
if (*times_ptr == 1)
{
return *thickness_ptr;
}
(*times_ptr)--;
return add_thickness(thickness_ptr, times_ptr);
}
int main()
{
double thickness = 0.006; // 0.006cm
int times = 43;
printf("设定纸张厚度:%f cm ", thickness);
printf("算出地月距离:%f cm ", add_thickness(&thickness,×));
printf("算出地月距离:%f km ", thickness / 1000 / 100);
// 地月距离
double distance = (double)386000 * 1000 * 100; // cm
// 操作43次
for (int i = 1; i <= 43; i++)
{
distance /= 2;
}
printf("纸张厚度应为:%f cm ", distance);
// 检验add_thickness()正确性
times = 43;
printf("按上述厚度,地月距离:%f km ", add_thickness(&distance,×) / 1000 / 100);
return 0;
}
---
若纸厚度0.006cm,按题操作43次,纸高度远大于地月距离386000公里!
若纸厚度0.004388cm,按题操作43次,纸高度等于地月距离386000公里。
程序执行结果:
Ⅲ 求高手帮我做一下这道c语言编程题目
#include <stdio.h>
#include <math.h>
#define PI 3.14 //圆周率
#define RAD 6371 //地球半径
int main()
{
double peri; //小圆周长
double rad; //小圆半径
double length;
double longitudeA , longitudeB; //A,B经度
double latitude; //A,B纬度
double temp;
printf("请输入A和B的经度:\n");
scanf("%lf%lf",&longitudeA,&longitudeB);
printf("请输入A和B的纬度:\n");
scanf("%lf",&latitude);
rad = cos(latitude) * RAD;
peri = 2*PI*rad;
temp = longitudeA - longitudeB;
length = (temp >0 ? temp : (temp*-1))/360 * peri;
printf("A和B的距离是:%f千米\n",length);
return 0;
}
Ⅳ 月球围绕地球,地球围绕太阳的C语言代码
A、当地球绕太阳公转从B到C,太阳直射点由赤道向南回归线移动,淮安的白昼越来越短,故不符合题意;B、当地球绕太阳公转从B到C,太阳直射点由赤道向南回归线移动,淮安的西北季风越来强盛,故不符合题意;C、当地球绕太阳公转从B到C,太阳直射点由赤道向南回归线移动,时间从9月23日到12月22日,梅雨时间一般在6月下旬到7月上旬,故不符合题意;D、当地球绕太阳公转从B到C,太阳直射点由赤道向南回归线移动,淮安的黑夜越来越长,故正确.故选:D.
Ⅳ 已知地球的平均半径为6371.393千米,假设在地球的某一纬度上,有两个处于不同经度的点A、B,用C语言编程
float 数 只能输出小数点后六位..用 double, %lf定义数和输出数
Ⅵ 地球与月球之间的距离大约是238857英里写C语言程序在屏幕上显示出地球与月球之间的大约是多少公里
#include<stdio.h>
main()
{
doublea=238857;
printf("%lf",a*1.609);
}
如图所示,望采纳。。。。。。
Ⅶ 已知地球任意两点,求两点间的直线距离和球面距离用c语言
这段代码可以达到你的目的。注释和其他有关信息自己添加。
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "math.h"
void main(void){
double x1,x2,x,r=6378.137,pai=3.1415926;
printf("Type 2 longitudes\n");
scanf("%lf%lf",&x1,&x2);
while(x1<0) x1+=360;
while(x2<0) x2+=360;
if((x=fabs(x1-x2))>180) x=360-x;
x=x/360*2*pai;
printf("The linear distance is %f(km)\n",2*r*sin(x/2));
printf("The arc length is %f(km)\n",r*x);
}
Ⅷ 利用日期、经纬度求日出日落时间 C语言程序代码
#definePI3.1415926
#include<math.h>
#include<iostream>
usingnamespacestd;
intdays_of_month_1[]={31,28,31,30,31,30,31,31,30,31,30,31};
intdays_of_month_2[]={31,29,31,30,31,30,31,31,30,31,30,31};
longdoubleh=-0.833;
//定义全局变量
voidinput_date(intc[]){
inti;
cout<<"Enterthedate(form:20090310):"<<endl;
for(i=0;i<3;i++){
cin>>c[i];
}
}
//输入日期
voidinput_glat(intc[]){
inti;
cout<<"Enterthedegreeoflatitude(range:0°-60°,form:404040(means40°40′40″)):"<<endl;
for(i=0;i<3;i++){
cin>>c[i];
}
}
//输入纬度
voidinput_glong(intc[]){
inti;
cout<<"Enterthedegreeoflongitude(westisnegativ,form:404040(means40°40′40″)):"<<endl;
for(i=0;i<3;i++){
cin>>c[i];
}
}
//输入经度
intleap_year(intyear){
if(((year%400==0)||(year%100!=0)&&(year%4==0)))return1;
elsereturn0;
}
//判断是否为闰年:若为闰年,返回1;若非闰年,返回0
intdays(intyear,intmonth,intdate){
inti,a=0;
for(i=2000;i<year;i++){
if(leap_year(i))a=a+366;
elsea=a+365;
}
if(leap_year(year)){
for(i=0;i<month-1;i++){
a=a+days_of_month_2[i];
}
}
else{
for(i=0;i<month-1;i++){
a=a+days_of_month_1[i];
}
}
a=a+date;
returna;
}
//求从格林威治时间公元2000年1月1日到计算日天数days
longdoublet_century(intdays,longdoubleUTo){
return((longdouble)days+UTo/360)/36525;
}
//求格林威治时间公元2000年1月1日到计算日的世纪数t
longdoubleL_sun(longdoublet_century){
return(280.460+36000.770*t_century);
}
//求太阳的平黄径
longdoubleG_sun(longdoublet_century){
return(357.528+35999.050*t_century);
}
//求太阳的平近点角
longdoubleecliptic_longitude(longdoubleL_sun,longdoubleG_sun){
return(L_sun+1.915*sin(G_sun*PI/180)+0.02*sin(2*G_sun*PI/180));
}
//求黄道经度
longdoubleearth_tilt(longdoublet_century){
return(23.4393-0.0130*t_century);
}
//求地球倾角
longdoublesun_deviation(longdoubleearth_tilt,longdoubleecliptic_longitude){
return(180/PI*asin(sin(PI/180*earth_tilt)*sin(PI/180*ecliptic_longitude)));
}
//求太阳偏差
longdoubleGHA(longdoubleUTo,longdoubleG_sun,longdoubleecliptic_longitude){
return(UTo-180-1.915*sin(G_sun*PI/180)-0.02*sin(2*G_sun*PI/180)+2.466*sin(2*ecliptic_longitude*PI/180)-0.053*sin(4*ecliptic_longitude*PI/180));
}
//求格林威治时间的太阳时间角GHA
longdoublee(longdoubleh,longdoubleglat,longdoublesun_deviation){
return180/PI*acos((sin(h*PI/180)-sin(glat*PI/180)*sin(sun_deviation*PI/180))/(cos(glat*PI/180)*cos(sun_deviation*PI/180)));
}
//求修正值e
longdoubleUT_rise(longdoubleUTo,longdoubleGHA,longdoubleglong,longdoublee){
return(UTo-(GHA+glong+e));
}
//求日出时间
longdoubleUT_set(longdoubleUTo,longdoubleGHA,longdoubleglong,longdoublee){
return(UTo-(GHA+glong-e));
}
//求日落时间
longdoubleresult_rise(longdoubleUT,longdoubleUTo,longdoubleglong,longdoubleglat,intyear,intmonth,intdate){
longdoubled;
if(UT>=UTo)d=UT-UTo;
elsed=UTo-UT;
if(d>=0.1){
UTo=UT;
UT=UT_rise(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo))))));
result_rise(UT,UTo,glong,glat,year,month,date);
}
returnUT;
}
//判断并返回结果(日出)
longdoubleresult_set(longdoubleUT,longdoubleUTo,longdoubleglong,longdoubleglat,intyear,intmonth,intdate){
longdoubled;
if(UT>=UTo)d=UT-UTo;
elsed=UTo-UT;
if(d>=0.1){
UTo=UT;
UT=UT_set(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo))))));
result_set(UT,UTo,glong,glat,year,month,date);
}
returnUT;
}
//判断并返回结果(日落)
intZone(longdoubleglong){
if(glong>=0)return(int)((int)(glong/15.0)+1);
elsereturn(int)((int)(glong/15.0)-1);
}
//求时区
voidoutput(longdoublerise,longdoubleset,longdoubleglong){
if((int)(60*(rise/15+Zone(glong)-(int)(rise/15+Zone(glong))))<10)
cout<<"Thetimeatwhichthesunrisesis"<<(int)(rise/15+Zone(glong))<<":0"<<(int)(60*(rise/15+Zone(glong)-(int)(rise/15+Zone(glong))))<<". ";
elsecout<<"Thetimeatwhichthesunrisesis"<<(int)(rise/15+Zone(glong))<<":"<<(int)(60*(rise/15+Zone(glong)-(int)(rise/15+Zone(glong))))<<". ";
if((int)(60*(set/15+Zone(glong)-(int)(set/15+Zone(glong))))<10)
cout<<"Thetimeatwhichthesunsetsis"<<(int)(set/15+Zone(glong))<<":"<<(int)(60*(set/15+Zone(glong)-(int)(set/15+Zone(glong))))<<". ";
elsecout<<"Thetimeatwhichthesunsetsis"<<(int)(set/15+Zone(glong))<<":"<<(int)(60*(set/15+Zone(glong)-(int)(set/15+Zone(glong))))<<". ";
}
//打印结果intmain(){
longdoubleUTo=180.0;
intyear,month,date;
longdoubleglat,glong;
intc[3];
input_date(c);
year=c[0];
month=c[1];
date=c[2];
input_glat(c);
glat=c[0]+c[1]/60+c[2]/3600;
input_glong(c);
glong=c[0]+c[1]/60+c[2]/3600;
longdoublerise,set;
rise=result_rise(UT_rise(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))))),UTo,glong,glat,year,month,date);
set=result_set(UT_set(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))))),UTo,glong,glat,year,month,date);
output(rise,set,glong);
system("pause");
return0;
}