搜索
查看: 331|回复: 3
打印 上一主题 下一主题

一个问题

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2018-7-8 20:43:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
       int a,b,c,d,e,f;
    for (a=1;a<=6;a++)
{
     for (b=1;b<=6;b++)
  {
         for (c=1;c<=6;c++)
   {
             for (d=1;d<=6;d++)
    {
                 for (e=1;e<=6;e++)
     {
                     for (f=1;f<=6;f++)
      {
                          if (a!=b && a!=c && a!=d && a!=e && a!=f && b!=c && b!=d && b!=e && b!=f && c!=d && c!=e && c!=f
                                 && d!=e && d!=f && e!=f)
         if (a+b+c==c+d+e && e+f+a==a+b+c)//为什么不能使用(a+b+c==c+d+e==e+f+a)
           printf("%d %d %d %d %d %d    ",a,b,c,d,e,f);
                        }
                    }
                }
            }
        }
    }              
     结果是不一样的

最佳答案

查看完整内容

因为C语言里,==相当于+-*/的一个运算符,a+b+c==c+d+e==e+f+a 会先计算a+b+c==c+d+e, 再计算(a+b+c==c+d+e)的值==e+f+a。
沙发
发表于 2018-7-8 20:43:34 | 只看该作者
因为C语言里,==相当于+-*/的一个运算符,a+b+c==c+d+e==e+f+a 会先计算a+b+c==c+d+e,
再计算(a+b+c==c+d+e)的值==e+f+a。
板凳
发表于 2018-7-9 10:03:57 | 只看该作者
楼主傻了…………………………………………………………
地板
发表于 2018-7-10 16:37:50 | 只看该作者
会先计算a+b+c==c+d+e返回就是波尔值true 然后继续 就变成了 true==e+f+a返回的就是false了

评分

参与人数 1啊哈币 +3 收起 理由
创世菌 + 3 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表