2013-03-26 166 views
-6

我有下面的代碼。但是,我認爲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 a = 1或a = 4?

+8

運行代碼並找出... – 2013-03-26 12:54:27

+1

在這之後,a是多少? – 2013-03-26 12:54:54

+3

定義了'pcnt []'的位置? – Mike 2013-03-26 12:54:55

回答

1

a10

1:如果execute != 0count >0

0:否則

注:

count >0當且僅當pcnt[0]!=0pcnt[1]!=0pcnt[2]!=0pcnt[3]!=0pcnt[4]!=0

+0

我想你的意思是「if'execute!= 0'」。 – 2013-03-26 12:57:08

+0

@JoachimPileborg這是正確的我抨擊它 – MOHAMED 2013-03-26 12:58:48

0

首先,由於缺少分號,因此無法編譯。如果變量沒有被正確地聲明,它也可能會有困難,但爲了回答,我會假定它們已經被使用了。

現在,看看a分配給什麼。我看到a = (count > 0)a = 0。那麼(count > 0)將只會是一個0或1(在C布爾表達式將解析爲1爲真和0爲假)。所以基本上,你有a = 0 or 1a = 0。這簡化爲a是0或1.