这个逻辑的输出是什么?

时间:2013-03-26 12:53:41

标签: c

我有以下代码。但是,我认为4就是答案。我是对的吗?

int a, i;

if (execute)
{
  int count = 0;
  for (i=0; i<5; i++)
  {
    if(pcnt[i]) count ++;
  }
  a = (count > 0)
}
else
{
  a= 0;
}

对于IF情况,a = 1还是a = 4?

2 个答案:

答案 0 :(得分:1)

a将为10

1:如果execute != 0count >0

0:否则

注意:

count >0当且仅当pcnt[0]!=0pcnt[1]!=0pcnt[2]!=0pcnt[3]!=0pcnt[4]!=0

答案 1 :(得分:0)

首先,由于缺少分号,因此无法编译。如果变量没有被正确声明,它也可能有困难,但为了回答,我会假设它们已经存在。

现在,看看a分配给了什么。我看到a = (count > 0)a = 0。好(count > 0)只会是0或1(C布尔表达式将解析为1表示true,0表示false)。基本上,您有a = 0 or 1a = 0。这简化为a为0或1。