第1个回答 2009-08-02
我原一楼,晕小程序出了BUG,while(n%10>0)改为while(n>0)修正版
#include <iostream.h>
void main()
{
int k=0,n;//k计输入数为几位数,n为输入值
cin>>n;
while(n>0)
{
n=n/10;
k++;
}
cout<<k<<endl;//输出k
}
看不懂的百度Hi我本回答被提问者采纳
第2个回答 2009-08-02
1楼写错了~是10的倍数怎么办?比如100 1000?
循环条件应该改成
while(n/10 != 0)
{
n = n/10;
k++;(k初值为1)
}
或者直接
k=(int)log(n)+1
调用math.h库的log函数
先声明float log(float)
int k
第3个回答 2009-08-02
int fun(int n)
{
int r = 0; //记录位数
while (n)
{
n /= 10;
r++;
}
return r;
}
写了个函数,自己写主函数吧
第4个回答 2009-08-02
用字符串会不会更简单?
int main()
{
char input[20];
cin>>input;
cout<<strlen(input)<<endl;
return 1;
}
如果要整数,那就楼上那样写吧。
第5个回答 2009-08-02
哈哈,一楼的对的,我还学到一个新方法,我以前写的代码真是白痴,谢谢了一楼