prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 14.11

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));

另请参阅问题 2.72.1014.12

参考资料:C9X 第 6.1.2.5 节,第 7.8 节


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管