这是一个统计一个数有几位数的代码,有谁知道错在哪里吗

#include <stdio.h>
int main() {
int i, a, b, c, d;
b = 0;
scanf("%d", &i);
do
{
a = i/10;
b=b+1;
} while (a != 0);
printf("%d",b);
}

题主的代码修改,供参考:

#include <stdio.h>
int main()
{
    int i, a, b, c, d;
    b = 0;
    scanf("%d", &i);
    a = i;         //修改
    do{
        a = a/10;  //修改
        b=b+1;
    } while (a != 0);
    printf("%d",b);

    return 0;
}

int main() {
int i, a, b, c, d;
b = 0;
scanf("%d", &i);
while(i!=0)
{
i/= 10;
b++;
}
printf("%d",b);
}