le_effort   5년 전

이런류의 문제를 풀 때 항상 cnt가 적용이 안되어서 고민입니다...

구글링에서 코드를 비교해봐도 제 코드랑 뭐가 다른지 차이점을 잘 모르겠어요...

그리고 이 코드가 전체적으로 맞는 코드인지도 모르긴 한데 (cnt가 적용이 안되어서 나오니까 모름)

왜 항상 저는 이런 반복문 속에서 조건을 만족할시 cnt++ 이 적용이 안되어서 나올까요?

항상 0 으로 나와요..... 뭐가 잘못된 걸까요?

cnt는 main함수에 있는 지역변수라 유효할 터인데.... 제발 도와주세요 ㅠ

lolicon   5년 전

적용이 안될리가 없습니다. 반복문 조건이 잘못돼서 그런거 아닐까요?

dyk777   5년 전

while()문은 ()내의 조건이 참일 시 동작합니다.

그런데 조건은 sum==n으로 되어 있는데, n은 0일 수가 없고, sum은 0으로 초기화되어 있으므로

조건은 거짓이 되어 while()문이 돌지 않게 됩니다.

dyk777   5년 전

조금 정정하자면, n이 0일 수 있기는 하네요. 그때는 무한 루프를 돌 겁니다, 아마도.

le_effort   5년 전

그럼 어떻게 수정해야 할까요..?

dyk777   5년 전

원하는 것이 sum과 n이 다른 동안 계속 뭔가를 해서 결국 두 변수의 값이 같을 때 반복을 끝내는 것이니까, 10번 줄이

while(sum!=n)

이어야겠죠.

외에 논리적으로 잘못된 부분이 있으니, 디버깅하시면서 찾아보세요.

댓글을 작성하려면 로그인해야 합니다.