如何解决在 C 中,如何将复数与 <、> 等进行比较
在编译简化的 mandelbrot 函数时,我不断收到此错误消息。
main.c:86:43: 错误:二进制操作数无效>(有“复数双精度”和“复数浮点数”) 否则如果(f2r > 1000 || f2i > 1000 * I){
........^
还有其他消息与此有关,但它们都是相同的问题。
前几天我几乎刚开始编码,我对 complex.h 包不够熟悉,无法自己整理……除此之外,我在网上的任何地方都找不到这个答案正如我所看到的 - 所以我决定问问。
提前致谢。
解决方法
您似乎正在尝试将复数的实部与实数进行比较,并将复数的虚部与虚数进行比较。比较运算符似乎不支持复数的比较。但是,您可以只找出复数值的虚部并进行比较。
double cimag(double complex d)
函数将返回复数值的虚部,以便您可以进行比较,因此请尝试以下操作:
else if(f2r > 1000 || cimag(f2i) > 1000) {
,
比较复数值的一种方法是作为它的模数。所以你可以使用以下公式:
模数 = sqrt(r * r + i * i)
然后比较两个值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。