任意输入一个数,如何知道他是几位数
任意输入一个数,如何知道他是几位数
----------------解决方案--------------------------------------------------------
可以用字符函数stlen()可以吗?
把数字当做字符????
----------------解决方案--------------------------------------------------------
有个itoa()函数吧,先转成字符串,再记长度就ok了(while(a[i]!='\0' i++; i即所求),好久不弄c了,大概是这样的
[此贴子已经被作者于2007-2-13 10:30:54编辑过]
----------------解决方案--------------------------------------------------------
#include <stdio.h>
long num,a=0;
int main() {
printf("Please Input a num:");
scanf("%ld",&num);
putchar('\n');
for(;num>0;a++,num=num/10) {}
printf("%ld有%ld位",num,a);
getchar();
}
----------------解决方案--------------------------------------------------------
先转成字符串可能不行,因为所输入的数字还有用处
----------------解决方案--------------------------------------------------------
还能再转会来的,atoi(),哈哈
----------------解决方案--------------------------------------------------------
也可以被个分
----------------解决方案--------------------------------------------------------
4楼方法也8错,先被个分就ok了
----------------解决方案--------------------------------------------------------
我的是直接将其得出,没有转换成字符串,我改了一下成了函数
去看看吧:
http://hi.baidu.com/%B6%E0%CE%AC%CA%FD%D7%E9/blog/item/8da333a85b1d47b1ca130ce2
函数原形:
long getmf(long num)
函数内容:
long getmf(long num) {
long a=0;
for(;num>0;a++,num=num/10) {}
return a;
}
很小巧吧,只用了3行。。。。。。但我不知道0是几位数。
----------------解决方案--------------------------------------------------------
但是你把num的值破坏了,最好实参型参那样分开
----------------解决方案--------------------------------------------------------