#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int number = 0;//用来记录位数
if (n == 0)//n==0单独讨论
{
printf("%d是1位数\n",n);
}
else//n!=0时
{
int s = n;//用s记录n的值
while (n)//n!=0时循环继续
{
n = n / 10;
number++;
}
printf("%d是%d位数\n", s, number);
}
return 0;
}
上面代码使用while循环,但要对0进行单独讨论,我们可以使用do while循环,来避免对0的讨论:
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int number = 0;//用来记录位数
int s = n;
do
{
number++;//n最小是一位数
n = n / 10;
} while (n);//注意最后加 ;
printf("%d是%d位数\n", s, number);
return 0;
}