如何计算C中数字的位数?

Mar*_*yam 1 c loops count

我一直试图解决这个问题,即计算数字的总数,我的代码部分工作.它适用于第一次尝试,但在第二次尝试中,计数增加了先前的计数.请帮忙.

#include<stdio.h>
int main()
{
    int num,x,i,n,count=0;
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        scanf("%d",&num);
        while(num!=0)
        {
            count++;
            num=num/10;
        }
        printf("%d\n",count);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

您的代码有两个问题:

  • 它永远不会重置count,并且
  • 它没有正确对待零,说它0有零位数

第一个问题的原因之一是您不限制变量的范围,事先声明所有变量.相反,你应该在需要它们的最严格的范围内声明它们:i应该在循环头count中声明,同时应该在for循环内声明和初始化.

对零处理,添加一个特殊情况,1在输入零时打印,或切换到do/ while循环.