Possible Duplicate:
How to work with complex numbers in C?
所以我有一段C代码,它编译时出错,说“complex”没有命名类型:

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

int main ()
{
    int B=9;
    double theta;

    double complex w;
    float x,y;

    x= 5*cos (theta) - 2;
    y= 5*sin (theta);


    double complex z=x+y*I;
    w=z+(B/z);

    for(theta=0;theta<=360;theta=+30)
    { printf ("%.2f  %.2f  %.2f  %.2f",creal(z), cimag(z),y,creal(w), cimag(w));
        printf ("/n");
    }

    return 0;

    system ("pause");
}

我已经包含了<complex.h>所以为什么“complex”仍然有错误。也有其他的错误,但让我们先关注这一个。

最佳答案

你使用GCC作为编译器吗?如果是,则需要使用-std=c99-std=gnu99编译器标志启用C99支持。
另外,在使用变量之前声明它们在这里:

double complex z=x+y*I;

尚未声明xy。当然你也需要初始化它们。例如:
float x = 5 * cos(theta) - 2;
float y = 5 * sin(theta);
double complex z = x + y * I;

关于c - 定义复数变量时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13609734/

10-13 02:16