2017-03-29 4 views
-1

桁数を計算するとき、コンパイラは0000を1つの0として扱い、答えは1です。ただし、各場所のゼロ数を計算する必要があります。例えば:0000から4 00から2入力が0000の場合の整数の桁数の検索方法は? (出力は4でなく1でなければなりません)

int n,c=0; 
scanf("%d",&n); 
do{ 
    n=n/10; 
    c++; 
}while(n!=0); 
printf("%d",c); 
+5

文字列として読み込みます。 – TZHX

+0

入力を文字列としてスキャンし、数字であるかどうかを確認して桁数を計算する – kuro

+1

上記のコメントよりも深く進むには、「0000」と「0」を区別する必要がある場合は、整数に関するより長い話(これらは同じ整数値なので)。表現を区別するために、表現を保持する必要があります - 最も簡単な方法は文字列を保存することです。 –

答えて

0

答えは、上記のコメントであるが、この完全な公式の答えは行うことができます:

あなたが整数の話なら、000と0が正確です同じ。 2つを区別したい場合は、代わりにエントリを文字列として扱い、内部に数字があることを完全に忘れる必要があります。 文字列の場合、いくつの文字があるのか​​を数えやすくなります。

関連する問題