2014-12-19 4 views
0

을 위해 내가 프로그램 일하고 진리 값으로 사용 할당 괄호를 제안하지만 내 g ++ 컴파일러 내가 오류 "경고가 계속와 루프경고 : 루프

for (int i = N-1; i = 0; i--) { 
    guessarray [i] = guess % 10; 
    guess /= 10; 
}//for 

에 대한에 문제가 있어요 : 진리 값으로 사용 된 과제 주변의 괄호를 제안하십시오. 나는 낮은 곳에서 높은 곳으로 거꾸로 작업하고 있음을 이해하지만, 그것이 어떻게 문제가 될지는 모르겠다. 나는 여러 곳에서 괄호를 넣으려고했지만, 할당 연산자를 사용하고 싶기 때문에 할당 연산자와 아무 관련이 없다는 것도 알고 있습니다. 경고는 N-1 바로 뒤에 놓입니다.

+0

(N-1), 경고가 사라 않습니다 나는 따라서 당신은 아마 다음이 있어야 의도는 (N-1) 0까지 카운트 다운했다 같은데요? – EJK

+0

아니요, 불행히도 ... – aaronk

답변

0

컴파일러는 for 루프의 할당에주의를 기울이고 있습니다. "for"문에 세 개의 세미콜론으로 구분 된 표현식이 있기 때문에 아마도 그렇게 할 것입니다.이 표현식은 다소 밀도가 높고 사람의 실수를하는 경향이 있습니다.

for (int i = (N-1); i = 0; i--) 

for (int i = N-1; i = 0; i--) 

을 변경하여 당신이 내가 할의 예 당신이 정말로 초기 값에 대한 의도 된 컴파일러를 말하고있다 (N-1).

==================

참고 또한 루프 (2 발현의 조건 섹션 논리 결함으로 나타나는 있다는 것을 이온)

하면 루프 (N 않는 == 1)가 실행되지 않는 것을 의미

i = 0; 

있다. 당신이 주변에 괄호를 넣어 경우

for (int i = (N-1); i >= 0; i--) // note the i >= 0 condition 
+0

답장을 보내 주셔서 감사합니다! :)하지만 불행히도 나는 이미 그것을 시도하고 같은 오류가 계속 발생했습니다 .... – aaronk

+0

나는 또한 루프에 다른 문제를 발견했습니다. 두 번째 표현이 올바르지 않을 수 있습니다. "i = 0;"보다는 "i> = 0"을 원한다고 생각합니다. – EJK

+0

예! 완벽하게 작동합니다! 무리 감사! – aaronk