为什么循环中的 n mod 10 不显示输出

why n mod 10 in loop doesn't show output

我已经解决了 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( "%d\n", i );