C语言实现复数运算

  • Post author:
  • Post category:其他


C99标准中已经引入了复数类型,使用时需要包含<complex.h>。但Visual C++ 6.0完全不支持C99标准,推荐使用gcc编译器对.c文件进行编译执行。

gcc下载



C语言中定义复数变量的格式

complex double s1 = 2.0 + 3.0 * I;
double complex s2 = 2.0 + 3.0 * I;



C语言中复数的基本运算

#include<stdio.h>
#include<complex.h>
int main()
{
	complex double a = 1.0 + 2.0*I, b = 3.0 + 4.0*I;	//a = 1 + 2i, b = 3 + 4i
	complex double s_1 = a + b;	//加
	complex double s_2 = a - b;	//减
	complex double s_3 = a * b;	//乘
	complex double s_4 = a / b;	//除
	printf("s_1的实部为%f, 虚部为%f, 模为%f\n", creal(s_1), cimag(s_1), cabs(s_1));
	printf("s_2的实部为%f, 虚部为%f, 模为%f\n", creal(s_2), cimag(s_2), cabs(s_2));
	printf("s_3的实部为%f, 虚部为%f, 模为%f\n", creal(s_3), cimag(s_3), cabs(s_3));
	printf("s_4的实部为%f, 虚部为%f, 模为%f\n", creal(s_4), cimag(s_4), cabs(s_4));
}

在这里插入图片描述



complex.h中所包含的常用函数

除了基本的加减乘除之外,complex.h中还包含以下函数:

  • 复数的实部creal()
  • 复数的虚部cimag()
  • 模cabs()
  • 相位carg()
  • 指数cexp()
  • 自然对数clog()
  • 幂cpow()
  • 平方根csqrt()
  • 复共轭cong()
  • 正弦csin()
  • 余弦ccos()
  • 正切ctan()
  • 反正弦casin()
  • 反余弦cacos()
  • 反正切catan()
  • 双曲正弦csinh()
  • 双曲余弦ccosh()
  • 双曲正切ctanh()
  • 反双曲正弦casinh()
  • 反双曲余弦cacosh()
  • 反双曲正切catanh()

说明:以上函数默认为双精度版本,在函数名后加f(即float)表示单精度版本,加l(即long)表示长双精度版本。



版权声明:本文为tengfei0973原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。