当前位置: 代码迷 >> C语言 >> [求助]求输入一个整数的位数?
  详细解决方案

[求助]求输入一个整数的位数?

热度:316   发布时间:2006-10-18 21:29:26.0
[求助]求输入一个整数的位数?
     想通过输入一个整数,然后记其中有几位数字组成?帮忙编个?谢了!
搜索更多相关的解决方案: 整数  位数  输入  数字  

----------------解决方案--------------------------------------------------------

你不是数学专业的吗?这都不知道?


----------------解决方案--------------------------------------------------------
你怎么知道我是数学专业的?呵呵!看来你觉得挺简单的,可我没点头绪?????
----------------解决方案--------------------------------------------------------

最直接的办法就是itoa, strlen


----------------解决方案--------------------------------------------------------

我编了一个出来,但很遗憾,不尽人意,超过10位的就会出错,10位以内到可以表示,由于本人水平有限,也想不出来怎么改,知道的帮我改改!
我代楼主和我自己谢谢你了!
#include "stdio.h"
void main()
{
int n,i,x,count=0;
printf("输入一个整数:");
scanf("%d",&n);
for(i=1;;i++)
{
if(n%10==0&&n/10==0)
break;
else
{ x=n-n%10;
n=x/10;
count++;}
}
printf("%d\n",count);

}


----------------解决方案--------------------------------------------------------
以下是引用BlueDreame在2006-10-18 21:37:40的发言:

最直接的办法就是itoa, strlen

gets(str);
printf("%d\n",strlen(str));


----------------解决方案--------------------------------------------------------
i=0;
long num;
scanf("%ld",num);
while(num)
{
num/=10;
i++;
}
printf("%d\n",i);
----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-10-18 22:53:02的发言:
i=0;
long num;
scanf("%ld",num);
while(num)
{
num/=10;
i++;
}
printf("%d\n",i);

这个算法的情况和我的一样啊,不能超过十,能解释一下为什么吗?
不过比我的简单多了!
----------------解决方案--------------------------------------------------------
num/=10表示每次记数增加一个就减少一位.
要很多位的就用字符串,直接求字符串长就可以了.
----------------解决方案--------------------------------------------------------
不能超过10应该是因为数据类型的缘故吧
----------------解决方案--------------------------------------------------------

  相关解决方案