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

C、C++和Java语言
回复
头像
Peace
帖子: 498
注册时间: 2006-02-01 14:37
来自: 火星
送出感谢: 0
接收感谢: 0

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

#1

帖子 Peace » 2006-02-03 19:04

#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?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2006-02-03 19:30

声明移动下来一行试试
● 鸣学
头像
Peace
帖子: 498
注册时间: 2006-02-01 14:37
来自: 火星
送出感谢: 0
接收感谢: 0

#3

帖子 Peace » 2006-02-03 20:18

我知道了,是“{”问题。不过在win下面居然可以通过。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#4

帖子 eexpress » 2006-02-03 20:22

晕。 我这里一次通过。不会是你机器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:~$
● 鸣学
头像
Peace
帖子: 498
注册时间: 2006-02-01 14:37
来自: 火星
送出感谢: 0
接收感谢: 0

#5

帖子 Peace » 2006-02-03 20:26

不太清楚,4。0的
huanglu
帖子: 1
注册时间: 2006-02-21 11:13
送出感谢: 0
接收感谢: 0

#6

帖子 huanglu » 2006-02-21 11:22

我用GCC去编译也过不去啊, 但是把long 提到main() 之上就可以,但是没有结果,不知道什么原因.
头像
leal
帖子: 1119
注册时间: 2005-08-29 14:49
来自: 杭州
送出感谢: 0
接收感谢: 3 次
联系:

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

#7

帖子 leal » 2006-02-21 20:16

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?

第一次见到这种写法,太诡异了
用心×恒 | 豆瓣 | 门户 | Blog
回复

回到 “C/C++/Java”