c语言(输入一个整数,统计它有几位数)如何用while语句代替do-while语句

输入一个整数,统计它有几位数
#include "stdio.h"
void main()
{
int m,n=0;
printf("iniput a number:\n");
scanf("%d",&m);
m=m>0?m:-m;
do{
n++;
m/=10;
}while(m!=0);
printf("n=%d \n",n);

}

第1个回答  2009-03-28
while(m!=0)
{
++n;
m/=10;
}
第2个回答  2009-03-28
......

while (m!=0)
{
n++;
m/=10;
}
......
第3个回答  2009-03-28
楼上两位大哥的程序对大多数情况是适用的,但当输入的m=0时,应该输出“1”,可实际上却是输出的“0”。因为刚进入循环时就不满足条件“m!=0”, 直接略过循环体。
为了解决这种情况,只需将循环的条件改一下,改为“m!=0||n==0”,这样至少执行一便循环体,就可以解决该问题。程序如下:
......

while(m!=0||n==0)
{
n++;
m/=10;
}
......本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网