このコードは、入力番号の数字を数えようとします。先行ゼロを含む数字の数字を数えるには?
入力番号が06584
の場合、このコードの出力は0以外の4
になります。 5
を出力するにはどうすればいいですか(ゼロを数える)?先行ゼロを含む数で数字をカウントする方法
#include<stdio.h>
void main()
{
int n,c=0,d;
printf("Enter no\n");
scanf("%d",&n);
while(n!=0)
{
d=n%10;
c++;
n=n/10;
}
printf("No of digits=>%d\n",c);
}
ません数学的解は、先行ゼロを検出しようとしています。ユーザーの入力を文字列として読み込み、文字列の長さを取得する必要があります。 – Kenster
whileの前にnの 'printf'を追加すると、先行する0が消えていることがわかります – pm100
' char n [100]; scanf( "%s"、n); c = strlen(n); '。それは入力が有効であると仮定して桁数を与えます。それが本当に数字であることを確認するには 'strtol'を使います。 – kaylum