C语言下使用复数类型完成数学计算

最近因为项目需要,需要写一段复数计算的程序,项目是用C语言写的,最初想的是自己定义一个复数类型,包含实部虚部,但是完成基本运算就麻烦些,不想使用C++的话可以直接进行操作符重载,这样计算的算法是可以通用的。后来在网上查找了一下才发现,原来C99 中已经引入了两个关键字 _Complex和 _Imaginary来支持复数类型,增加了如下几种类型
  1. float _Complex  
  2. double _Complex  
  3. long double _Complex  
  4. float _Imaginary  
  5. double _Imaginary  
  6. long double _Imaginary 

使用时需要包含<complex.h>



定义复数变量时,可以如此:

double _Complex v1=3.1+5*I;
double _Complex v2=3.2+5*_Complex_I;
float _Complex v3=4.6f+12.0IF;  //必须先写i,后写f
_Complex float v4=8.2f+2.3if;
long double _Complex v5=1.23456789L+3.456789999iL; //必须先写i,后写L


除了基本的加减乘除可以直接运算外,还有以下函数可以使用:

  • 复三角函数
    • 反余弦
    • 反正弦
      • casin 双精度版本
      • casinf 单精度版本
      • casinl 长双精度版本
    • 反正切
      • catan 双精度版本
      • catanf 单精度版本
      • catanl 长双精度版本
    • 余弦
      • ccos 双精度版本
      • ccosf 单精度版本
      • ccosl 长双精度版本
    • 正弦
      • csin 双精度版本
      • csinf 单精度版本
      • csinl 长双精度版本
    • 正切
      • ctan 双精度版本
      • ctanf 单精度版本
      • ctanl 长双精度版本
  • 复双曲函数
    • 反双曲余弦
      • cacosh 双精度版本
      • cacoshf 单精度版本
      • cacoshl 长双精度版本
    • 反双曲正弦
      • casinh 双精度版本
      • casinhf 单精度版本
      • casinhl 长双精度版本
    • 反双曲正切
      • catanh 双精度版本
      • catanhf 单精度版本
      • catanhl 长双精度版本
    • 双曲余弦
      • ccosh 双精度版本
      • ccoshf 单精度版本
      • ccoshl 长双精度版本
    • 双曲正弦
      • csinh 双精度版本
      • csinhf 单精度版本
      • csinhl 长双精度版本
    • 双曲正切
      • ctanh 双精度版本
      • ctanhf 单精度版本
      • ctanhl 长双精度版本
  • 指数对数函数
    • 指数
      • cexp 双精度版本
      • cexpf 单精度版本
      • cexpl 长双精度版本
    • 自然对数
      • clog 双精度版本
      • clogf 单精度版本
      • clogl 长双精度版本
  • 运算和绝对值
    • 绝对值
      • cabs 双精度版本
      • cabsf 单精度版本
      • cabsl 长双精度版本
    • 幂运算
      • cpow 双精度版本
      • cpowf 单精度版本
      • cpowl 长双精度版本
    • 平方根
      • csqrt 双精度版本
      • csqrtf 单精度版本
      • csqrtl 长双精度版本
  • 操作
    • 相角
      • carg 双精度版本
      • cargf 单精度版本
      • cargl 长双精度版本
    • 虚部
      • cimag 双精度版本
      • cimagf 单精度版本
      • cimagl 长双精度版本
    • 复共轭
      • cong 双精度版本
      • congf 单精度版本
      • congl 长双精度版本
    • 黎曼球面投影
      • cproj 双精度版本
      • cprojf 单精度版本
      • cprojl 长双精度版本
    • 实部
      • creal 双精度版本
      • crealf 单精度版本
      • creall 长双精度版本

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值