2017-11-25 6 views
-4

数字を入力として受け取る必要があり、最初の数字は0でなければなりません(数字が0の場合はループを閉じます)しかし、コンパイラは、私は、入力としてただ1番号を入れてみようと、私はそれをEnterキーを押すと、ここでstucks は私のコードです:私のプログラムは中断していますが、whileループでループしています

#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は、ループのelseに設定されていないnum/10するb以外-branch 。だから、それはちょうどelseブランチを永遠に実行します

+0

今後、現在の回答を編集してから、元に戻してください。 –

+0

それが 'else * 'ブランチに入ると仮定します。 –

+0

は行いますが、その時点で 'undelete'オプションを利用できませんでした。または、少なくとも見えない。私はそれが表示されたページをリフレッシュしたと思います。 – TinyTheBrontosaurus

関連する問題