为什么这个代码会一直停留在那,不能进行

#include
int main()
{ int a,c;
int b=0;
printf("请输入你们要数的整数");
scanf("%d",&a);
do { a/=10,b++;} while (a>0);
printf("这个数是%d位数\n",b);
printf("接下来试验for循环,请输入正整数");
scanf ("%d",&c);
for (b=0;c>0;b++);
{c/=10 ;}
printf("这个数有%d位数\n",b);
return 0 ;
}

for (b=0;c>0;b++);//去掉分号,否则死循环
//或改成 for(b=0;c>0;b++,c/=10);//有分号
{c/=10 ;}

另外,求一个数位数可以这样:

int ldfxxxxx(int n) {
    return log10(n) + 1;//要#include <cmath>
}

请进入我的博客看一下求一个数位数的便捷方法!

======《一、数学函数——代码简化机》=========