| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1500 人关注过本帖
标题:求你大神解释
只看楼主 加入收藏
亲琪琪
Rank: 2
等 级:论坛游民
帖 子:55
专家分:38
注 册:2016-3-12
结帖率:70%
收藏
 问题点数:0 回复次数:2 
求你大神解释
# include<stdio.h>
int main()
{
int i,b,k=0;
for(i=1;i<=5;i++)
{
b=i%2;
while(b-->=0) k++;
}
printf("%d,%d",k,b);
return 0;
}
这个结果为啥是8,-2
搜索更多相关主题的帖子: return 
2016-05-31 17:29
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:0 
这个跟踪一下就行了
首先对于K来说,如果i是奇数就+2  如果i是偶数就+1 因此 k = 2 + 1 + 2 + 1 + 2 = 8
对于b来说,看最后一次i = 5时候就行
i = 5
b = 1
b >= 0 , b --, b = 0  继续循环
b >= 0 , b --, b = -1 继续循环
b >-0 不成立 ,b -- , b = -2

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2016-05-31 19:57
xihuanshang
Rank: 1
来 自:新乡
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-5-31
收藏
得分:0 
程序进去for循环后,先运行b=i%2;然后进去while循环,而while(b-->=0)是先比较b与0的大小,然后执行b--。

岂能尽如人,意但求无愧于心。
2016-05-31 20:09
快速回复:求你大神解释
数据加载中...
 
   



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

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