----------------解决方案--------------------------------------------------------
你不是数学专业的吗?这都不知道?
----------------解决方案--------------------------------------------------------
你怎么知道我是数学专业的?呵呵!看来你觉得挺简单的,可我没点头绪?????
----------------解决方案--------------------------------------------------------
最直接的办法就是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);
}
----------------解决方案--------------------------------------------------------
最直接的办法就是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);
----------------解决方案--------------------------------------------------------
i=0;
long num;
scanf("%ld",num);
while(num)
{
num/=10;
i++;
}
printf("%d\n",i);
这个算法的情况和我的一样啊,不能超过十,能解释一下为什么吗?
不过比我的简单多了!
----------------解决方案--------------------------------------------------------
num/=10表示每次记数增加一个就减少一位.
要很多位的就用字符串,直接求字符串长就可以了.
----------------解决方案--------------------------------------------------------
不能超过10应该是因为数据类型的缘故吧
----------------解决方案--------------------------------------------------------