| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 422 人关注过本帖
标题:初学者求教
只看楼主 加入收藏
meishanhuang
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-2-12
结帖率:81.82%
收藏
已结贴  问题点数:5 回复次数:6 
初学者求教
有程序段
int k,j,s;
for(k=2;k<6;k++,k++)
{ s=1;
  for(j=k;j<6;j++)s+=j;
}
printf("%d\n",s);
运行结果为10,但我无法看懂该程序流程,请高手不吝赐教,请详细点,谢谢。
2012-09-24 20:42
QQ007977
Rank: 2
等 级:论坛游民
帖 子:29
专家分:43
注 册:2012-9-9
收藏
得分:2 
当K=2时,j就从2变到5,s的值就是s=1+2+3+4+5;之后K=4,s重新变为1,j从4变到5,循环之后s=1+4+5=10;
之后K=6跳出循环,输出s为10
2012-09-24 21:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:1 
好的缩进能增加代码的可读性

程序代码:
int k,j,s;
for(k=2; k<6; k++,k++)
{
    s=1;
    for(j=k; j<6; j++)
        s+=j;
}


还有 你的程序里面用的竟然是中文的; ; 认真看着两个有什么不同 不能用中文符号
2012-09-24 21:31
vgehpu
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2011-10-6
收藏
得分:2 
我的理解是这样的:
k=2; -> k<6; ->s=1; -> 进入第二个for循环,不进行完,不结束,j=2; -> j<6; -> s = 1+2 =3; -> j++,j=3; -> j<6 -> s=3+3=6 ->j++,j=4; -> s=6+4=10 ->j++,j=4->s=10+4=14; ->j++,j=5; -> s=14+5=19; ->这时候,j++,j=6不小于6,跳出这个for循环,进而第一个大循环也进行了一次。然后接着开始执行k++,k++,k=4 ->k<6;再次进入第二个for循环,这时候是s=1;-> j=4; ->j<6; ->s=1+4=5; 接着j++,j=5;->s=5+5=10,再接着k++,k=6,不小于6,退出这个for循环。继而k++,k++,这个时候k=6也不再循环,
因此退出整个循环。s = 5 + 5 =10;
这里面可能不理解的是s的值,s是个自动变量,每次都要重新赋值的。
2012-09-24 22:34
gaolongtou
Rank: 2
等 级:论坛游民
帖 子:79
专家分:42
注 册:2012-9-25
收藏
得分:0 
呵呵,又学会了一些东西。
2012-09-25 21:40
sibswjc
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-9-5
收藏
得分:0 
第一个循环条件里为何k++要写两遍啊?
2012-09-26 00:27
QQ007977
Rank: 2
等 级:论坛游民
帖 子:29
专家分:43
注 册:2012-9-9
收藏
得分:0 
回复 6楼 sibswjc
k++写两遍就是k=k+2的意思
2012-09-26 20:29
快速回复:初学者求教
数据加载中...
 
   



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

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