2010-11-26 3 views
0

c의 2 정수에서 mod (%)를 수행하려고합니다. 그런 일을 처음 시도했습니다.mod 연산자를 사용하여 문제가 발생했습니다.

아래 코드는 루프 내부에서 count가 0으로 설정된 루프에 있으며 매 반복마다 1 씩 증가합니다. 내 "읽기"값 변경을 볼 것으로 기대하고 있지만 "ㅋ"값에 머물러 있습니다.

내가 뭘 잘못하고 있니?

int blah=176400; 
count+=1; 
NSLog(@"the time = %i",count);// prints the correct increments 
int read = (int)(blah % count); 
NSLog(@"read %i",read); // prints out 1764000 all the time 
+1

코드를 실행하면 작동합니다. (NSLog를 사용하지 않는 수정을 제외하고) 문제를 재현하는 최소한의 테스트 케이스를 만들 수 있습니까? –

+1

"176400"또는 "1764000"이 인쇄됩니까? 또한 for 루프를 포함하면 도움이 될 것입니다. – darioo

+0

표시되는 코드가 멋지게 보이며 문제가 주위의 루프 또는 다른 곳에있을 수 있습니다. 전체 코드를 게시하십시오 (NSLog 또는 Xcode 태그, 즉 C가 아닌 Xcode 특정 태그는 사용하지 마십시오). – kriss

답변

4

예제 코드 :

#include <stdio.h> 

int main() { 
    int blah = 176400; 
    for (int count = 1; count < 20; ++count) { 
     printf("%d %% %d = %d\n", blah, count, blah % count); 
    } 
} 

출력 :

176400 % 1 = 0 
176400 % 2 = 0 
176400 % 3 = 0 
176400 % 4 = 0 
176400 % 5 = 0 
176400 % 6 = 0 
176400 % 7 = 0 
176400 % 8 = 0 
176400 % 9 = 0 
176400 % 10 = 0 
176400 % 11 = 4 
176400 % 12 = 0 
176400 % 13 = 3 
176400 % 14 = 0 
176400 % 15 = 0 
176400 % 16 = 0 
176400 % 17 = 8 
176400 % 18 = 0 
176400 % 19 = 4 

나는 문제가 코드에서 다른 곳에 말하고 싶지만.

+0

또는 '계산'이 예상보다 훨씬 커졌습니다. – cHao

+0

@chao. thats는 경보를 발생시킵니다.내 앱이 실행되는 시간에 따라 매우 커집니다. – dubbeat

+1

@dubbeat : 글쎄, 전에는 언급하지 않았다. count가 blah보다 크면 예상되는 동작을 보게됩니다. – darioo

1

m이 n보다 큰 경우 "n 모듈러스 m"을 수행합니다. 결과는 n이며 올바른 것입니다.

아마도 count % blah을 원했습니까?

+0

주위의 값을 전환하면 반복적으로 카운트 값이 인쇄됩니다. – dubbeat

+1

-1 : 아니요, 그는 올바른 순서로 모듈로를 사용합니다. – kriss

+2

@kriss : 제한된 코드에서 실제로 얻지 못하는 의도에 따라 다릅니다. 당신은 그 숫자가 무엇을 나타낼 지 알지 못해서 하나 또는 다른 것이 "올바른 주문"이라고 확실히 말할 수 없습니다. 솔직히, 생각할 수있는 대부분의 상황에서 '카운트 % ㅋ'는 더 의미가 있습니다. – cHao

1

blah % count은 기본적으로 두 숫자가 양수인 경우 blahcount으로 나누는 나머지 부분임을 이해합니다. 숫자 중 하나 또는 둘 다 음수 일 때 상황이 조금 더 복잡해집니다. count이 더 큰 숫자 인 경우 결과는 항상 blah입니다 (나누기가 0이되고 나머지는 blah이므로). 귀하의 경우 그것은 count이 매우 큰 상황으로 이끄는 것처럼 보입니다.

여기에 %을 사용하여 의도를 작성하는 것은 어렵지만, 피연산자 중 하나가 잘못된 순서로 있거나 결과가 무엇인지 오해하고있는 것 같습니다. 또는 아마도 실제로 필요한 것 완전히 다른 운영자입니다.

관련 문제