C - 为什么 N mod 10 在循环中不显示输出



我在c中解决了一个基本问题,那就是计数整数中的数字,我写了-

# include

int main()   
{
int n;
scanf("%d",&n);

int i;
while(n!=0)
{
n %= 10;
++i;
}

printf("%d",i);
}

我已经知道上面的代码是错误的,我应该写n/=10;而不是n%=10;但是我想知道为什么它不打印I的偶数值,即0。

如果我写错了,请忽略它,我是新来的。

如果数n不能被10整除,则此表达式的值(除数的余数)

n %= 10;

永远不会等于0

变量i也没有初始化。

int i;

你应该写

int i = 0;
do
{
++i;
} while ( n /= 10 );
printf( "%dn", i );