这是包含我的代码的文件的链接(谷歌文档链接) -
#include<stdio.h>
int len(int);
void main()
{
int n,p;
printf("enter number");
scanf("%d",&n);
p=len(n);
printf("length of entered number is %d",p);
}
int len(int num)
{
int i,c,b;
for(i=1;i<=50;i++){
b=10*i;
if(num<b) {
return(i);
break;
}
}
}
最佳答案
计算b=10*i;
没有逻辑意义。您想要 10 的指定次方吗?
解决此问题的正常方法是重复除以 10,直到达到 0(使用整数运算),并计算除法的次数。即原始数字的位数。此方法也不容易受到整数溢出的影响:
unsigned digits = 0;
for (; num /= 10; ++digits);
return digits;
关于用于查找整数位数的 C 代码无法按照建议进行修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495462/