| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2964 人关注过本帖
标题:7个FOR语句只有一个分号!
只看楼主 加入收藏
aaaasix
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-6-10
收藏
 问题点数:0 回复次数:19 
7个FOR语句只有一个分号!
main()
{int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j])
{ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j>7-i;j++)
if(x[j]>x[j+1] )
{ k=x[j];x[j]=x[j+1]; x[j+1]=k;}
for(i=0;i<8;i++) printf("%d",x[i]);
printf("\n") ;
getch() ;
}

是一道选择题:答案是:A 75310246 B 0123456 C 76310462 D 13570246
the answer is A, but why ?
我反正是被这家伙搅晕了,到底循环了多少次也整不清了,劳烦大家帮给整理分析一下,让它好看一点,
哦,应该说是让我们这些小菜更能弄懂点!
还有啊,我自己打上去,出来的答案是:75312460 奇了,没这答案~~~~5555555555555
打反正没打错!我又检查过了!
想不通中~~~~~~~~~~~~~
搜索更多相关主题的帖子: 分号 FOR 语句 answer 
2007-07-05 23:56
aaaasix
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-6-10
收藏
得分:0 
啊,看来是晕了,坐会沙发先!

只有五个FOR 语句!嘿嘿!!!
2007-07-05 23:57
fyi1106
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-14
收藏
得分:0 

这是你的:

main(){
int x[]={1, 3, 5, 7, 2, 4, 6, 0}, i, j, k;
for(i=0; i<3; i++){
for(j=2; j>=i; j--){
if(x[j+1]>x[j]){
k=x[j]; x[j]=x[j+1]; x[j+1]=k;
}
}
}
for(i=0; i<3; i++){
for(j=4; j>7-i; j++){
if(x[j]>x[j+1]){
k=x[j]; x[j]=x[j+1]; x[j+1]=k;
}
}
}
for(i=0; i<8; i++){
printf(\"%d\", x[i]);
}
printf(\"\n\");
getch();
}

这是我猜的:

main(){
int x[]={1, 3, 5, 7, 2, 4, 6, 0}, i, j, k;
for(i=0; i<3; i++){
for(j=2; j>=i; j--){
if(x[j+1]>x[j]){
k=x[j]; x[j]=x[j+1]; x[j+1]=k;
}
}
}
for(i=0; i<3; i++){
for(j=4; j<7-i; j++){
if(x[j]>x[j+1]){
k=x[j]; x[j]=x[j+1]; x[j+1]=k;
}
}
}
for(i=0; i<8; i++){
printf(\"%d\", x[i]);
}
printf(\"\n\");
getch();
}

自已编译输出看看。
我就不多说了吧。


JavaScript forever!
2007-07-06 00:16
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

楼上你的程序改变原来的程序,不是本意了,还怎么判断,
for(i=0;i<3;i++)
for(j=4;j>7-i;j++)
if(x[j]>x[j+1] )
{ k=x[j];x[j]=x[j+1]; x[j+1]=k;}
这语句根本就没有执行过,其实就是下面这程序段在执行:
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j])
{ k=x[j];x[j]=x[j+1];x[j+1]=k;}
但这循环看了下,还没搞明白怎么交换那么多次数。


深山苦学C语言,终年不见外面世界。
2007-07-06 00:33
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
头都大了........

2007-07-06 06:36
aaaasix
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-6-10
收藏
得分:0 

呵呵~~~果然
真的是小于号!
不过就像4楼的说的!
这程序换来换去的,太晕人了!
结果是出来了!对的!
不过我还有一个问题:第二个FOR后面有一个交换两个数的复合语句,
但它后面没有分号啊!(就是我程序的第一个'}'处)
请问三楼的高手为什么是在这后面紧跟了两个'}' ?而不是放在第五个FOR后面?

2007-07-06 06:41
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用aaaasix在2007-7-5 23:56:17的发言:
main()
{int x[]={1,3,5,7,2,4,6,0},i,j,k;

for(i=0;i<3;i++)//这一部分做的就是数组0到3按从大到小排序.
for(j=2;j>=i;j--)
if(x[j+1]>x[j])
{ k=x[j];x[j]=x[j+1];x[j+1]=k;}

for(i=0;i<3;i++)//这里根本就没有被执行过.因为每次判断j>7-i不成立,所以fyi1106
才会这样猜测,j>7-i是否写错了.按照答案来说,是写错了,本意也是做排序.
for(j=4;j>7-i;j++)
if(x[j]>x[j+1] )
{ k=x[j];x[j]=x[j+1]; x[j+1]=k;}

for(i=0;i<8;i++) printf("%d",x[i]);
printf("\n") ;
getch() ;
}

是一道选择题:答案是:A 75310246 B 0123456 C 76310462 D 13570246
the answer is A, but why ?
我反正是被这家伙搅晕了,到底循环了多少次也整不清了,劳烦大家帮给整理分析一下,让它好看一点,
哦,应该说是让我们这些小菜更能弄懂点!
还有啊,我自己打上去,出来的答案是:75312460 奇了,没这答案~~~~5555555555555
打反正没打错!我又检查过了!
想不通中~~~~~~~~~~~~~


倚天照海花无数,流水高山心自知。
2007-07-06 08:24
aaaasix
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-6-10
收藏
得分:0 

没人回答我吗?
为什么从第一个FOR到最后一个FOR这间的句末只有一个分号?
这样的话,那么第一个FOR的控制范围是到第一个'}'处呢?还是直到遇到第一个分号为止?

难道这个问题不算问题吗?

2007-07-09 21:06
rocketabc
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-7-6
收藏
得分:0 
回复:(aaaasix)7个FOR语句只有一个分号!
main()
{int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j])
{ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j>7-i;j++)
if(x[j]>x[j+1] )
{ k=x[j];x[j]=x[j+1]; x[j+1]=k;}
for(i=0;i<8;i++) printf("%d",x[i]);
printf("\n") ;
getch() ;
}
第一个for 应该到for(i=0;i<8;i++) printf("%d",x[i]);
为止吧

兴趣和爱好是我追求的方向
2007-07-09 21:47
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
收藏
得分:0 

考试考这样的题目我宁愿撞墙去死得了


我要一步一步往上爬……
2007-07-09 22:07
快速回复:7个FOR语句只有一个分号!
数据加载中...
 
   



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

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