-5

if ステートメントを使用して、数値に含まれる桁数を計算するプログラムを作成します。

私のコード:

#include <stdio.h>
int main (void)
{
int n;
printf ("Enter number :");
scanf ("%d",&n);
if  ( n<=9)
printf ("Textnumber has one digit:");
if ( n <=99)
printf ("Textnumber has two digits:");
if (n<=999)
printf ("Textnumber has three digits:");
if (n <=9999)
printf ("Textnumber has four digits:");

return 0;
}

問題は、これを実行すると、たとえば次のようになることです:223

画面に結果が表示されます:

Textnumber has three digitsTextnumberhasfourdigits...

どこが間違っていますか?

4

2 に答える 2

3

これは、コードが適切にインデントされていないことをコンパイラが罰しているためです。

冗談ですが、実際には、あなたのロジックに欠陥があります(および/またはあなたの期待がコードの動作と一致しません): else ifs が必要なのは、数値が特定の制限よりも大きい場合、より小さい制限よりも大きくなるためです。そのため、それらすべてが誤って印刷されます。

于 2013-08-07T10:47:46.920 に答える