「已注销」 2021-12-24 13:36 采纳率: 81%
浏览 201
已结题

c语言简单运用,直接坐标转极坐标

请编写程序,输入直角坐标 ( x,y ),输出对应的极坐标 ( r,θ )。

输入格式

( x,y )

输出格式

( r,θ )

注:θ 的单位为弧度,且 −π<θ≤π。

要求:r 和 θ 输出10位有效数字,不输出小数末尾多余的零和小数点。

输入样例1

( -1.29903810567665797, 0.75 )

输出样例1

( 1.5, 2.617993878 )

输入样例2

( -2, -3.4641016151377546 )

输出样例2

( 4, -2.094395102 )

作者

李祥

单位

湖北经济学院

代码长度限制

16 KB

时间限制

400 ms

内存限制

  • 写回答

1条回答 默认 最新

  • Admini$trat0r .net领域新星创作者 2021-12-24 13:53
    关注
    #include<stdio.h>
    #include<math.h>
    struct complex_s{
        double x,y;
    };
    double real_part(struct complex_s z){
        return z.x;
    }
    double img_part(struct complex_s z){
        return z.y;
    }
    double magnitude(struct complex_s z){
        return sqrt(z.x*z.x + z.y*z.y);
    }
    double angle(struct complex_s z){
        return atan2(z.y, z.x);
    }
    struct complex_s make_from_real_img(double x, double y){
        struct complex_s z;
        z.x = x;
        z.y = y;
        return z;
    }
    struct complex_s make_from_mag_ang(double r, double A){
        struct complex_s z;
        z.x = r * cos(A);
        z.y = r * sin(A);
        return z;
    }
    struct complex_s add_complex(struct complex_s z1,struct complex_s z2){
        return make_from_real_img(real_part(z1)+real_part(z2),
            img_part(z1) + img_part(z2));
    }
    struct complex_s sub_complex(struct complex_s z1,struct complex_s z2){
        return make_from_real_img(real_part(z1)-real_part(z2),
            img_part(z1) - img_part(z2));
    }
    struct complex_s mul_complex(struct complex_s z1,struct complex_s z2){
        return make_from_mag_ang(real_part(z1)*real_part(z2),
            img_part(z1) + img_part(z2));
    }
    struct complex_s div_complex(struct complex_s z1,struct complex_s z2){
        return make_from_mag_ang(real_part(z1)/real_part(z2),
            img_part(z1) + img_part(z2));
    }
    int main(void){
        struct complex_s z1 = {3.0,4.0};
        struct complex_s z2= {2.0,5.0};
        struct complex_s x;
        x = add_complex(z1,z2);
        printf("x={%f,%f}",x.x,x.y);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月24日

悬赏问题

  • ¥15 CARSIM前车变道设置
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败