输入一个整数,统计它有几位数
#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;
}
{
++n;
m/=10;
}
第2个回答 2009-03-28
......
while (m!=0)
{
n++;
m/=10;
}
......
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;
}
......本回答被提问者采纳
为了解决这种情况,只需将循环的条件改一下,改为“m!=0||n==0”,这样至少执行一便循环体,就可以解决该问题。程序如下:
......
while(m!=0||n==0)
{
n++;
m/=10;
}
......本回答被提问者采纳