一个简单C语言程序求解

一个简单C语言程序求解
#include
int main()
{
int a,i=2;
scanf("%d",&a);
if(a<10) printf("1");

L:if(a/10<10)
{
printf("%d",i);
}
else
i=i+1;
a=a/10;
goto L;
return 0;
}

上面的程序是求一个数字有多少位,但是例如输入100后不断输出3,想问一下,如何实现运行一次 printf("%d",i);这个语句后就让程序停止。。。谢谢拉!
去掉goto L显然是不行的,因为去掉后大于两位数的数是无法输出其猛高轮位数的,问题的关键在于念烂else的作用只到 i=i+1;就结束了,加个括号就好了。如下:
#include
int main()
{
int a,i=2;
scanf("枝信%d",&a);
if(a<10) printf("1");

L:if(a/10<10)
{
printf("%d",i);
}
else
{
i=i+1;
a=a/10;
goto L;
}
return 0;
}
楼主你好!
很高兴回答槐键尺你的问题!
你的代码太繁亮棚杂了,我帮你精铅高简了一下!
#include
int main()
{
int a,i=0;
scanf("%d",&a);
while(a%10 != 0)
{
a /=10;
i++;
}
printf("%d",i);
return 0;
}
希望我的回答对你有帮助!
望采纳!谢谢!
#include <圆锋stdio.h>
int main()
{
int a, i=1;

scanf("拿腔枝%d", &a);

while(a/10!=0)

{

i++;

a = a /消敏 10;

}

printf("%d", i);

return 0;

}
L:if(a/10<10)
{
printf("%d",i);
break;
}
你可以尝试这样,另外C语言嘛 还是不推荐使用goto的 ,因握毁为段仔备会使代码结构不清戚桥。
去掉goto L;
这是一个死循环,改用其它的语句结构吧
← 上一篇: 下一篇: →