代码如下:
#include<stdio.h>
int main()
{
int a,b
int i
printf("请输入一个数字:")
scanf("%d",&a)
b=a
for(i=0a>1i++)
{
a=a/10
}
printf("%d是%d位数\n",b,i)
}
扩展资料:
思路详解:
在C语言中,经常会用到以整数相除来确定一个整形数字的每一位的具体数字是多少,同理,此处可用整数相除来判断一个数的位数。
首先,使用scanf函数获取这个数字的值,且赋给变量b,作一个备份。
接着,确定核心思路为,当一个数整除10,第一次结果为1时,这个数是一个个位数。因而,以其作为循环内的主体。
得到了for(i=0a>1i++) a=a/10这样的代码,最后,输出结果即可。
思路:因为c语言中整数除以整数等于整数,所以一个数除以10就少一位,所以求一个数的位数可以依次除10操作,直到其位0,每除10该数的位数加1。
参考代码:
#include <stdio.h>int main() {
int n,sum=0
scanf("%d",&n)
while(n){
sum++
n/=10
}
printf("该数的位数为:%d\n",sum)
return 0
}
/*
12345
该数的位数为:5
*/