| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1326 人关注过本帖
标题:两段简单程序?
只看楼主 加入收藏
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
 问题点数:0 回复次数:26 
两段简单程序?

看看两段程序
一:

#include<stdio.h>
void main(){
int i,j,k;
for(i=1;i<=5;i++){
if(i<=3){
for(j=3-i;j>0;j--)
printf(" ");
for(k=2*i-1;k>0;k--)
printf("*");
printf("\n");
}
else{
for(j=i-3;j>0;j--)
printf(" ");
for(k=-2*i+11;k>0;k--)
printf("*");
printf("\n");
}
}
getch();
}

二:
#include<stdio.h>
void main(){
for(int i=1;i<=5;i++){
if(i<=3){
for(int j=3-i;j>0;j--)
printf(" ");
for(int k=2*i-1;k>0;k--)
printf("*");
printf("\n");
}
else{
for(int j=i-3;j>0;j--)
printf(" ");
for(int k=-2*i+11;k>0;k--)
printf("*");
printf("\n");
}
}
getch();
}

前者可以正常编译,后者却不能!

[此贴子已经被作者于2007-10-18 22:49:15编辑过]

搜索更多相关主题的帖子: void include 
2007-10-18 22:47
canyue
Rank: 1
等 级:新手上路
威 望:1
帖 子:159
专家分:0
注 册:2007-10-4
收藏
得分:0 

请先允许我提一个问题:你是不是先学JAVA后学C?

在JAVA 中可以这样 for(int i=1;i<=5;i++) 定义一个变量;
但是在C中必须把变量定义在执行语句之前。


别看我现在只有这么亮,总有一天会月圆的!
2007-10-18 23:06
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
在c里面所有的变量都要在函数一开始定义,

c++不需要,只要在使用前定义就行,象上面的第二个程序,放在vc6里面只要再多加个头文件就可以执行

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 07:53
boot2046
Rank: 2
等 级:新手上路
威 望:3
帖 子:168
专家分:0
注 册:2007-7-23
收藏
得分:0 
如果是用gcc的话,那么这样写是可以编译的
用gcc -std=c99

c99里才支持这种写法

Linux是简单的,你不需要成为天才也能理解这种简单,Windows是复杂的,就算你是天才也不能理解这种复杂
2007-10-19 09:22
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
zhufeifei
好久没看到你了.

按照我们学的理论书来说,不能在for()里定义.
但很多编译器支持,是因为C++里支持.
C里面好象不可以,拿传统的TC来编译就知道.

不过不用去弄这些没有多大意义的东西.
只要知道这种写法不是真正的错误就行了.
我比较喜欢第二个.定义局部变量.

倚天照海花无数,流水高山心自知。
2007-10-19 10:49
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 

两个程序的变量 作用范围和生命周期都一样的


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 11:22
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用永夜的极光在2007-10-19 11:22:13的发言:

两个程序的变量 作用范围和生命周期都一样的

错误.
写个简单的

#include<stdio.h>
int main()
{
int i=0;
{
int i=1;
printf("%d\n",i);
}
printf("%d\n",i);
return 0;
}


倚天照海花无数,流水高山心自知。
2007-10-19 11:25
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
哦。忘记看上面的程序的j和k了,我其实想说的意思是下面这两种情况是一样的

int main()
{
int i;
for(i=0;i<5;i++);
return 0;
}


int main()
{
for(int i=0;i<5;i++);
return 0;
}

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 11:34
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

还上错.后面的i 只局限在for循环体了,而前面的i 是整个主函数.
你两个程序都没有再用到i ,当然不会用问题了.

int main()
{
int i;
for(i=0;i<5;i++);
printf(\"%d\",i);//通过
return 0;
}



int main()
{
for(int i=0;i<5;i++);
printf(\"%d\",i);//失败
return 0;
}

倚天照海花无数,流水高山心自知。
2007-10-19 11:38
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
看来我们的编译器不一样,我在vc6里面调试是一样的
图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2007-10-19 12:13:26编辑过]


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-19 12:11
快速回复:两段简单程序?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020912 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved