在C中分配复数的实部或虚部

时间:2013-02-19 03:42:14

标签: c complex-numbers

我需要使用牛顿方法研究复数以提取多项式的虚根。

我收到错误,因此我将代码分解为简单的问题,看看有什么问题。当我尝试编译它时会返回错误:

  

警告:任务目标不是真正的左值;这将是一个很难的错误

此外,我想知道无论如何我都可以显示整个复数,而无需使用crealcimag

#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;
}

1 个答案:

答案 0 :(得分:2)

问题在于以下几点:

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

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