知识分享 – 基础知识 | 每日一练(132)

读者:在 C语言中如何很好的实现复数?

小林:这其实非常直接, 定义一个简单结构和相关的算术函数就可以了。C99 在标准中支持复数类别。

读者:我要寻找一些实现以下功能的程序源代码:快速傅立叶变换(FFT)、矩阵算术 (乘法、倒置等函数)、复数算术。

小林:Ajay Shah 整理了一个免费算术软件列表。这个列表在互联网有广泛的归档。其中一个 URL 是 ftp://ftp.math.psu.edu/pub/FAQ/numcomp-free-c。

读者:Turbo C 的程序崩溃, 显示错误为 “floating point formats not

linked” (浮点格式未连接)。

小林:一些在小型机器上使用的编译器, 包括 Turbo C (和 Richie 最初用在 PDP-11上的编译器), 编译时会忽略掉某些它认为不需要的浮点支持。特别是用非浮点版的 printf() 和 scanf() 以节省一些空间, 也就是忽略处理 %e、%f 和 %g 的编码。然而, Borland 用来确定程序是否使用了浮点运算的探测法并不充分, 程序员有时必需调用一个空浮点库函数 (例如 sqrt(), 或任何一个函数都可以) 以强制装载浮点支持。

正文完