注册 登录
编程论坛 C语言论坛

程序编译一下报错“[Error] expected initializer before 'cz'” 求教大佬 谢谢!!

天下天下 发布于 2022-10-27 17:54, 1815 次点击
#include <complex.h>
#include <stdio.h>

int main()
{
   
    double complex cz = 1.0 + 2.0 * i ;
   
}

这个程序编译一下报错“[Error] expected initializer before 'cz'” 求教大佬  谢谢!!
14 回复
#2
朱一凡2022-10-27 19:09
你变量 i 没有设置
#3
apull2022-10-28 10:25
double complex cz = 1.0 + 2.0 * I ; 大写的I
#4
rjsp2022-10-28 13:22
apull 说得对,或者 2.0i
#5
朱一凡2022-10-29 18:41
我实验了还报错
#6
rjsp2022-10-29 19:07
以下是引用朱一凡在2022-10-29 18:41:45的发言:

我实验了还报错

你把编译器给的错误信息贴出来呀!
#7
lllyyy32022-10-30 10:12
以下是引用rjsp在2022-10-28 13:22:23的发言:

apull 说得对,或者 2.0i

请教r老师这么改是什么意思?为什么小写i改成大写I,或者2.0*i改成2.0i就可能对。
报的问题不是和初始化有关的么
#8
天下天下2022-10-30 13:55
兄弟们我试了一下 都无法运行!报错

7    20    D:\计算机学习\C 语言\学习练习程序实例\复数.cpp    [Error] expected initializer before 'cz'
8    34    D:\计算机学习\C 语言\学习练习程序实例\复数.cpp    [Error] 'cz' was not declared in this scope
#9
rjsp2022-10-30 18:48
以下是引用lllyyy3在2022-10-30 10:12:47的发言:

请教r老师这么改是什么意思?为什么小写i改成大写I,或者2.0*i改成2.0i就可能对。
报的问题不是和初始化有关的么

这是C语言的 复数类型,跟int等类型一样,是编译器内置类型。i表示 虚数。
但是,VC不支持
#10
rjsp2022-10-30 18:50
回复 8楼 天下天下
你用的是什么编译器?编译器名称 与 编译器版本,最好把 编译参数 也贴出来
#11
天下天下2022-10-30 18:59
已经无语了
用的Dev-C++  Dev-Cpp.5.11 编译器
这个复数定义就是报错
#12
rjsp2022-10-30 20:42
Dev-Cpp.5.11 的编译器是什么?太古老,记不得了,印象中好像是 mingw32 4.9

double complex cz = 1.0 + 2.0*I; 是标准做法
double complex cz2 = 1.0 + 2.0i; 是gcc扩展

以下代码编译参数 -Wall -Wextra -std=c99
程序代码:
#include <stdio.h>
#include <complex.h>

 
int main(void)
{
    double complex cz = 1.0 + 2.0*I;
    printf( "%g%+gi\n", creal(cz), cimag(cz) );

    double complex cz2 = 1.0 + 2.0i;
    printf( "%g%+gi\n", creal(cz2), cimag(cz2));
}
#13
rjsp2022-10-30 20:44
把鼠标移动到12楼的代码上,代码框右上角出现“复制”“运行”两个按钮,点击“运行”按钮。
成功编译输出为
1+2i
1+2i
#14
天下天下2022-10-30 23:27
兄弟们    还是报错  
[Error] expected initializer before 'cz'
[Error] expected initializer before 'cz2'ared in this scope
[Error] expected initializer before 'cz2'
[Error] 'cz2' was not declared in this scope

大家都用什么编译器啊  推荐个好用的吧!
#15
rjsp2022-10-31 00:21
回复 14楼 天下天下
你把编译参数贴出来看看
1