Q在 C 语言中实现复数的一个好方法是什么?
A定义一个简单的结构体和一些操作它们的算术函数是很直接的。C99 支持complex作为标准类型。 [脚注] 这是一个小例子,让您体会一下
typedef struct { double real; double imag; } complex; #define Real(c) (c).real #define Imag(c) (c).imag complex cpx_make(double real, double imag) { complex ret; ret.real = real; ret.imag = imag; return ret; } complex cpx_add(complex a, complex b) { return cpx_make(Real(a) + Real(b), Imag(a) + Imag(b)); }您可以使用类似这样的代码来使用这些例程
complex a = cpx_make(1, 2); complex b = cpx_make(3, 4); complex c = cpx_add(a, b);或者,更简单地,
complex c = cpx_add(cpx_make(1, 2), cpx_make(3, 4));
参考资料:C9X 第 6.1.2.5 节,第 7.8 节