题目要求:键盘输入一个正整数,要求输出它是几位数。
【第一组自测数据】 【第二组自测数据】
键盘输入:349213↙ 键盘输入:10000↙
正确输出:6 正确输出:5
#include <stdio.h>
#include <math.h>
int main()
{
int a,m=0;
scanf("%d",&a);
while(a>0)
{
a=a/10;
m=m+1;
}
printf("%d",m);
return 0;
}
解题思路:用原数不断除以10,用一个数来装位数,当除10后的数小于等于0时,则循环终止。
例:348,348/10=34.8,由于原数已经定义为int,则将0.8去掉,剩余34,此时用m来装位数,为1,后34/10=3.4,0.4去掉,剩余3,此时m+1=2,后3/10=0.3,去掉0.3,剩余0,此时m+1=3,循环终止。