重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
创新互联于2013年成立,先为贵德等服务建站,贵德等地企业,进行企业商务咨询服务。为贵德企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
int count = 1;
int calc(int num){
while (1 == 1) {
count++;
num /= 10;
if(num 0){ //小于0的数就变成正数
num *= -1;
}
if (num 10) {
break;
}
}
return count;
}
void main(){
int num = 0;
printf("请输入一个数:");
scanf("%d",num)
printf("数字%d是一个%d位数!",num,calc(num));
}
现有函数是没有的
不过可以用现有函数组合。
int num_len(int n)
{
char s[20];
sprintf(s, "%d",n);
return strlen(s);
}
更简单的是
(int)log10(n);
不过 这个效率略低一些。
#include stdio.h
int wei(int num)
{
int n=1;
while(num/10)
{
n++;
num = num / 10;
}
return n;
}
int main()
{
int a=100,b=1000,c=10000;
printf("%d:%d\n%d:%d\n%d:%d\n",a,wei(a),b,wei(b),c,wei(c));
return 0;
}