2017-11-25 4 views
-4

입력으로 숫자를 받아야하고 첫 번째 숫자는 0이어야합니다 (숫자가 0이면 루프를 닫음) 하지만 컴파일러는 나 입력으로 하나 개의 번호를 넣어 주시면는 stucks 그것을 Enter 키를 누르면 여기 내 코드입니다 :내 프로그램이 멈췄다. while loop in c

#include <stdio.h> 
int main(){ 
    int num=0, max=0, first=0, a=0, b=0; 

    do{ 

     b = num /10; 
     if(b==0) 

     scanf("%d", &num); 


     else{ 
     a = num%10; 
     if (max < a){ 
      max = a; 
      first = num; 
      a=b; 
     } 
    } 

    } 
    while(num > 0); 

    printf("%d\n%d", max, first); 




} 
+7

나는 [프로그램을 디버깅하는 방법을 배우는] 시간이라고 생각합니다. (https://ericlippert.com/2014/03/05/how-to-debug-small -programs /). –

+0

나는 그것을 잘못 읽었다! 게시하기에 너무 빠르며 삭제하기에는 너무 빠릅니다. 이제 돌아왔다! – TinyTheBrontosaurus

답변

4

numb 루프의이 elsenum/10b 이외의 -branch 일에 설정되어 있지 . 그래서 그것은 단지 else-branch를 영원히 돌릴 것입니다.

+0

앞으로는 현재 답변을 편집 한 다음 삭제를 취소하십시오. –

+0

이것을 * else * 분기로 가져 간다고 가정합니다. –

+0

하지만,'undelete' 옵션을 사용할 수 없습니다. 또는 적어도 보이지 않습니다. 나는 그것이 나타 났을 페이지를 새롭게했을 것이라고 상상한다. – TinyTheBrontosaurus