C语言 能详细解释一下这段代码的意思吗 特别是后面那段if语句 我看不懂?

#include<stdio.h>intmain(){inta,b,c,d; for(a=0;a<2;a++)  for(b=0;b<2;b... #include<stdio.h>

int main()

{ int a,b,c,d;

  for(a=0; a<2; a++)

    for(b=0; b<2; b++)

      for(c=0; c<2; c++)

        for(d=0; d<2; d++)

          if((a==0)+(c==1)+(d==1)+(d==0)==3&&(a+b+c+d==1))

          { if(a)printf("A\n");

            if(b)printf("B\n");

            if(c)printf("C\n");

            if(d)printf("D\n");

          }

  return 0;
展开
 我来答
fastfs
2019-12-03 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:784万
展开全部
if((a==0)+(c==1)+(d==1)+(d==0)==3&&(a+b+c+d==1))
这个if语句的意思是(a==0)+(c==1)+(d==1)+(d==0)==3 这4个小括号里任意3个成立 和 a b c d任意为1
不知道前一个条件代码是否有问题d==1和d==0其中一个必定为真 也就是说a为0 c为1的情况下前一个条件为0 第二个条件必须c为1 其他为0 这个if条件才成立
更多追问追答
追问
那后面四句关于输出的if语句是什么意思呢 为什么最后输出的是C呢  就是编译组建 执行后  就是 C 了
追答
前面分析了这个if成立必须c为1其他为0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式