0

我需要处理复杂的工作以使用牛顿法提取多项式的虚根。

我遇到了一个错误,所以我将代码分解为简单的问题,看看有什么问题。当我尝试编译它时,它返回一个错误:

警告:赋值目标不是真正的左值;这将是未来的一个硬错误

另外我想知道是否无论如何我可以显示整个复数而无需使用crealand cimag

#include<stdio.h>
#include<complex.h>

int main()
{
  double complex z1 = 2 + 3*I;
  creal(z1) = 5;
  cimag(z1) = 10;
  printf("%.2f +%.2f *i \n", creal(z1), cimag(z1));
  return 0;
}
4

1 回答 1

2

问题是这些行:

creal(z1) = 5;
cimag(z1) = 10;

creal 和 cimag 返回双打。您不能分配给函数返回值。您可以将函数的返回值分配给另一个变量,例如 double real = creal(z1).

于 2013-02-19T03:46:05.537 回答