2017-11-25 239 views
-4

我有一個問題,解決這個問題: 我必須接收數字作爲輸入和第一個數字必須爲0(如果數字爲0關閉循環)但是編譯器讓我把一個號碼作爲輸入,當我按下ENTER它stucks 這裏是我的代碼:我的程序卡在do ,, while循環在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 -程式/)。 –

+0

我看錯了!發佈太快,然後太快刪除!它現在回來了! – TinyTheBrontosaurus

回答

4

numb在循環的else分枝比b其他要num/10未設置。所以它只會運行else -branch永遠

+0

將來,請修改您當前的答案,然後取消刪除。 –

+0

假設它*進入'else'分支。 –

+0

將會這樣做,但當時我沒有「undelete」選項。或者至少不可見。我想如果我會刷新它將顯示的頁面。 – TinyTheBrontosaurus