code1
复杂版,有点心累。
#include<stdio.h>
int main()
{
int n;
printf("input the number:\n");
scanf("%d",&n);
int count;
int beishu=1;
double panduan;
for(count=0;;count++)
{
panduan= n/beishu;
if(panduan<1)
{
break;
}
if(fabs(panduan-1)<1e-10)
{
count =count+1;
break;
}
beishu=beishu*10;
}
printf("%d\n",count);
return 0;
}
code2
牛啤版
#include<stdio.h>
#include <math.h>
int main()
{
int n;
scanf("%d",&n);
// 主要就是下面的那一句代码。
int digitofnum = floor(log10(n))+1;
printf("%d\n",digitofnum);
return 0;
}
floor(double arguement)
函数返回参数不大于arguement的最大整数。