所以我有这段C代码编译错误,说'复杂'没有命名类型:
#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>
,为什么“复杂”仍然存在错误。还有其他错误,但我们首先要关注这个错误。
答案 0 :(得分:4)
您使用GCC作为编译器吗?如果是,则需要使用-std=c99
或-std=gnu99
编译器标志启用C99支持。
此外,在使用之前声明变量。这里:
double complex z=x+y*I;
尚未声明x
或y
。当然,您还需要初始化它们。例如:
float x = 5 * cos(theta) - 2;
float y = 5 * sin(theta);
double complex z = x + y * I;
答案 1 :(得分:1)
这应该有效:
#include <stdio.h>
#include <complex.h>
#include <math.h>
int main ()
{
int B=9;
double theta;
double complex w;
float x = 5*cos (theta) - 2;
float 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;
}