-3
此代码尝试对输入数字中的数字进行计数。如何统计数字中的数字,包括前导零?
如果输入数字是06584
,则此代码的输出将为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(s)已经消失 – pm100
'char n [100];的scanf( “%S”,正); C = strlen的(N);'。假设输入有效,这会给你数字的个数。要验证它确实是一个使用'strtol'的数字。 – kaylum