2013-09-29 31 views
0

在我的編程類中,我們不允許使用|| & &和!爲這項任務。如果沒有使用!你怎麼能做一個「不」的陳述?另外,如何做& &將是有用的,但我想我可以弄明白。如何做到「不」沒有「!」 in C

(我們可以使用%/ * POW ABS LN + - )

+0

請使用%/ * POW ABS +號法律公告 - 沒有如果,否則,或==對不起任何混亂。另外,值將是0到4 –

+0

不斷變化的問題。它似乎仍然不適合我。 –

+0

重寫!(變量%4)沒有!!只能使用%/ * LN ABS + - –

回答

0

怎麼

1-(abs(abs(a+1) - abs(a-1))/2) 

說明:

int not(int a){ 
    int b = abs(a+1) - abs(a-1); 
    //b is either -2, 0 or 2 depending on whether a was <0, ==0 or >0. 
    int c = abs(b)/2; 
    //c is either 0 or 1 depending on whether b was zero or non-zero 
    return 1-c; 
    //return 1 if a is 0 or 0 if a is 1 
} 
1

!a相當於1-a,提供a是保證只取的值根據不同的情況爲0或1

0

,事像:

if(a != b){ 
    //do stuff 
} 

可以改寫爲:

if(a == b){} else { 
    //do stuff 
} 
1
if (!x) { } 

相同

if (x==0) { } 
1

等同於(X 0?1)(X!)或(X == 0)

1
  • 如何在不使用!的情況下做「不」聲明?另外,如何 做& &將是有用的,但我想我可以弄明白。

確切回答問題:使用標準的宏notand等只是不要忘了#include <iso646.h>

0

超級簡單簡單的方法,

If(x == y) { 
    //Don't do something 
} 
Else{ 
    //do something 
} 
0

!(variable % 4)可以寫成"\1\0\0"[abs(variable%4)]

變量%4只能爲變量的任何整數值導致整數值{-3,-2,-1,0,1,2,3}。

由於只有7個可能的值,我們可以使用結果查找表。

結果!這些值是:

  • -3 - > 0
  • -2 - > 0
  • -1 - > 0
  • 0 - > 1
  • 1 - > 0
  • 2 - > 0
  • 3 - > 0

爲了避免處理負索引,我們將腹肌將R所以我們只看到0-3。

一種簡單的方式來表示該查找表是一個文本字符串:「\ 1 \ 0 \ 0」。我們使用八進制轉義序列作爲值。在0值是1,在1的值是0,等C字符串有一個隱含的0(NUL)作爲最終的焦炭,因爲我們需要的最後一個值是0,我沒有明確包括。

如果不能使用方括號,你也可以把它寫像這樣:*("\1\0\0" + abs(variable%4))