分页: 1 / 1

为什么在C过程中没有办法声明变量?

发表于 : 2006-02-03 19:04
Peace
#include <stdio.h>

int main()
long a[40],i;
{
a[0]=1;a[1]=1;
for(i=2;i<=40;i++) a=a[i-1]+a[i-2];
for(i=1;i<=40;i++) printf("%d\n",a);
return 0;
}

这样的程序在win下面编译通过,为什么GCC没有办法?如果我把long a[40],i;定义在公共就可以通过?why?

发表于 : 2006-02-03 19:30
eexpress
声明移动下来一行试试

发表于 : 2006-02-03 20:18
Peace
我知道了,是“{”问题。不过在win下面居然可以通过。

发表于 : 2006-02-03 20:22
eexpress
晕。 我这里一次通过。不会是你机器gcc配置问题吧。
exp@exp:~$ ./te
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
exp@exp:~$

发表于 : 2006-02-03 20:26
Peace
不太清楚,4。0的

发表于 : 2006-02-21 11:22
huanglu
我用GCC去编译也过不去啊, 但是把long 提到main() 之上就可以,但是没有结果,不知道什么原因.

Re: 为什么在C过程中没有办法声明变量?

发表于 : 2006-02-21 20:16
leal
Peace 写了:#include <stdio.h>

int main()
long a[40],i;
{
a[0]=1;a[1]=1;
for(i=2;i<=40;i++) a=a[i-1]+a[i-2];
for(i=1;i<=40;i++) printf("%d\n",a);
return 0;
}

这样的程序在win下面编译通过,为什么GCC没有办法?如果我把long a[40],i;定义在公共就可以通过?why?

第一次见到这种写法,太诡异了