一切困难都能打倒我 2023-08-06 09:32 采纳率: 87.1%
浏览 14
已结题

卫星圆弧距离和直线距离C语言

麻烦看看哪里出错了,代码过一部分测试点,怎么也找不到解决办法

地球的半径是6440公里。有许多人造卫星围绕着地球运行。如果两颗人造卫星对地球中心形成一个夹角,您能计算出这两颗人造卫星之间的距离吗?距离分别以圆弧距离(arc distance)和直线弦距离(chord distance)来表示。这两颗人造卫星是在同一轨道上(本题设定这两颗人造卫星是在一条圆形路径上,而不是在椭圆路径上,绕地球运行)。
输入输出格式
输入格式
输入包含一个或多个测试用例。.
每个测试用例一行,给出两个整数s和a,以及一个字符串”min”或”deg”;其中s是人造卫星与地球表面的距离,a是这两颗人造卫星对地球中心的夹角。以分(′),或者以度(◦),为单位。输入不会既给出分,又给出度。
输出格式
对于每个测试用例,输出一行,给出两个卫星之间的圆弧距离和直线弦距离,以公里为单位。距离是一个浮点数,保存小数点后的六位数字。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define R 6440
#define P  3.14159265358979323846
int main() 
{
    double a=0,s=0,arc=0,cho=0;
    char angle[4]={0};
    while(scanf("%lf %lf %s",&s,&a,angle)!=-1)
    {
    if(angle[0]=='m') a=a/60;
    a=a*P/180;
    if(a>P)a=2*P-a;
    arc=(s+R)*a;
    cho=2*(s+R)*sin(a/2);
    printf("%.6lf %.6lf",arc,cho);
     
    }
    return 0;
}

img

  • 写回答

3条回答 默认 最新

查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月6日
  • 已采纳回答 8月6日
  • 创建了问题 8月6日

悬赏问题

  • ¥15 报酬10000,做一个简单的换汇网站
  • ¥15 关于#vue.js#的问题:word excel和ppt预览问题语言-javascript)
  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢