| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:这段代码为什么输出0,0,1
只看楼主 加入收藏
给力小青年
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-11-20
结帖率:78.57%
收藏
已结贴  问题点数:10 回复次数:5 
这段代码为什么输出0,0,1
int logic;   

    int a = 1;
    int b = 2;
    int c = 3;

    logic = a+b>c&&b<=c;
    printf("logic = %d\n", logic);

    logic = a>=b+c||b==c;
    printf("logic = %d\n", logic);

    logic = !(a<c)+b!=1&&(a+c)/2;
    printf("logic = %d\n", logic);
    getchar();
}
2011-12-29 12:15
driftsand
Rank: 2
等 级:论坛游民
帖 子:25
专家分:85
注 册:2011-12-21
收藏
得分:2 
了解一下优先级吧

Don't tell lies because those who believe your lies are the ones who believe in you.
2011-12-29 12:29
碧螺春能解渴
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2011-12-28
收藏
得分:2 
不应该是
0
0
1
的吗?
    logic = a+b>c&&b<=c;            // (a+b>c)=0;所以:logic的值为0;
    printf("logic = %d\n", logic);

    logic = a>=b+c||b==c;           //(a>=b+c)=0;(b==c)=0;所以:logic的值为0;
    printf("logic = %d\n", logic);

    logic = !(a<c)+b!=1&&(a+c)/2;   /*          (!(a<c))=0;(b!=1)=1;故:(!(a<c)+b!=1)=1;((a+c)/2)=1(是1还是2额?新手小问题求答下。);所以:logic的值为1;        */
    printf("logic = %d\n", logic);
2011-12-29 12:47
luojie5683
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:69
专家分:49
注 册:2011-10-10
收藏
得分:2 
运算符的优先级问题,还有看该表达式最后是属于什么表达式,也就是说最后决定值的运算符是什么。
2011-12-29 20:56
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
收藏
得分:2 
不加括号害死人啊
2011-12-30 08:55
拿笔小新
Rank: 2
等 级:论坛游民
帖 子:8
专家分:11
注 册:2011-12-31
收藏
得分:2 
这样的编程只会给阅读的人带来麻烦,建议根据算法把括号加上。。
2012-01-01 01:59
快速回复:这段代码为什么输出0,0,1
数据加载中...
 
   



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

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