循环取模运算就可以了啊
假设输入数是a
i = a%10
j = a/10
如果j等于0说明已经找到最高位,则结束循环
如果j不等于0,则说明找到当前最后一位i,继续循环 j不等于0的次数就是位数啊
#include
#include
int cnt_int(int num)
{
int i,j;
j=0;
while(num>0){
i= num % 10;
num= num / 10;
printf("%d\n",i);
j++;
}
return j;
}
int main()
{
int num,n;
scanf("%d",&num);
n = cnt_int(num);
printf("整数 %d 为 %d 位整数\n",num,n);
return 0;
}
结果为:
1234 <------------- 输入 1234
4
3
2
1
整数 1234 为 4 位整数
int num=1999; //输入1999
int temp;
int k=1; //位数
temp = num;
while(temp /10 != 0)
{
temp = temp /10 ;
k++;
}
printf("输入%d,位数%d",num,k);
大致可以这样做
先输入,然后把整数转换成字符串进行处理。