2017-11-25 240 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