杭电1008水题,不懂,为什么下面这个程序用C提交会出现编译错误,而用C++提交就直接AC了,求解释,亲。

2024-12-18 00:36:58
推荐回答(3个)
回答1:

提示信息是:
0_0_5145086_31302.c:7: error: 'for' loop initial declaration used outside C99 mode
这句话:for(int i=0;i应该改成:
while(scanf("%d",&N)!=-1&&N!=0)
{ int curfloor=0,time=0,tofloor=0,dev=0 ,i;
for(i=0;i...
c 语言中变量名的申明应该放在一个程序段的开始:
比如这样是不行的:
{
int z,c=1;
z=2*11*c;
int b; /// 不可以
}
这样子就可以了
{
int z,c=1;

int b; /// 可以
z=2*11*c;
}

回答2:

我进行调试了,当你用c提交时,会出错,只是一个地方的错误。这也是学习c,c++时区别的小细节。这个错误是,你用c语言写的for,while,等等的循环是,注意,不可以在循环体内定义变量。吧上边程序改成:
int N;
int i;
while(scanf("%d",&N)!=-1&&N!=0)
{ int curfloor=0,time=0,tofloor=0,dev=0;
for( i=0;i其他地方不变,你进行调试看看,有没问题

回答3:

标准的C语言的变量定义都是在方法的开头的。