a932806803 2015-05-09 00:47 采纳率: 0%
浏览 3003

一个入门级C语言编程问题

已知地球的平均半径为6371.393千米,假设在地球的某一纬度上,有两个处于不同经度的点A、B,用C语言编程求出这两点之间的直线距离、这两点在该纬度剖面上切圆的劣弧长度,以及这两点之间的球面距离。
以下是我写的代码。
#include "stdio.h"
#include "math.h"
main()
{
double x,y,z,t,s,d,l,R,r=6378.137,pi=3.1415926;
scanf("%lf%lf%lf",&x,&y,&z);
if((t=fabs(z-y))>180)
t=360-t;
t=2*pi*t/360;
x=fabs(x);
x=2*pi*x/360;
R=r*cos(x);
l=2*R*sin(t/2);
s=R*t;
d=r*t;
printf("%f,%f,%f\n",l,s,d);
system("pause");
return 0;
}
老师给的参考数据是

北纬0度,东经0度,东经90度——直线距离=9010.510271,纬度切圆劣弧长度=10008.160550,球面距离=10008.160550
而我求出来的是,9020.047727,10018.754000,10018.754000
老师要求尽可能高的精确度
我是哪里出了问题

  • 写回答

9条回答 默认 最新

  • csdnyxy0924 2015-05-09 01:47
    关注

    除法那里,如: .../360 .../2 改成 .../360.0 .../2.0 试一下吧

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集