2013-05-18 4 views
0

내가 가지고있는 다음 코드전에 ')'예상 '또는'

int count_div (int A, int B, int K) { 
    float div =(float) (B - A)/K; 
    if ((A % K == 0) or (B % K == 0)) 
    return div + 1; 
    return div; 
} 

내가 오류를 얻고, 이제

func.c:3: error: expected ')' before 'or' 

내가 다른 브래킷의 필요가 있다고 생각하지 않습니다 그것 앞에. 안내해주십시오. 감사합니다.

+4

'iso646.h'를 포함하여 '또는'을 활성화 했습니까? – Jon

+0

@ 존 : 그건 나에게 처음이다. 'iso646.h'은 무엇입니까? – Jack

답변

1

'또는'을 '||'로 바꾸어보세요. 당신이 C에서 andor "키워드"를 사용하려면

if ((A % K == 0) || (B % K == 0)) 
0
if ((A % K == 0) or (B % K == 0)) 

, 당신은 || 사용한다 머리글. (단, ||을 사용해야하며, C를 아는 대부분의 독자에게 더 익숙합니다.)

11

, 당신은 <iso646.h>을 포함해야하는 키워드 or이없는 에서 또는 운영자

0

문제는 괄호 수가 아닙니다. 거의 모든 언어에서 문장을 (또는 적어도 것들은 내가 사용했습니다) :

((A %의 K == 0) 또는 (B의 % K == 0))

은 다음과 같이 작성해야하는 경우

:

((A %의 K == 0) || (B의 %의 K == 0)) C.에서

+0

많은 언어가'||'대신'또는'를 사용합니다; C (기본적으로)는 그 중 하나가 아닙니다. – mipadi

+0

알아두면 좋겠지 만, 그게 사실 일 것이라고 생각 했어. 내가 자격을 얻은 이유는 다음과 같다. – TheTrooble

0

더가있다 "또는"연산자하려고하면 || "또는"대신.

0

또는

#define or || 
#define and && 

... 
if ((A % K == 0) or (B % K == 0)) 
... 

정말 비표준이기 때문에 그것을하지 않는 것이 좋습니다 (하지만하지 않는 것이 좋습니다).

+0

아, 그건 ISO646입니다. – dwj

+0

그 매크로들과 몇몇 다른 매크로들은 표준 헤더''에 정의되어 있습니다. –

관련 문제