请看一下以下这个程序有什么错误

 #include <iostream>
using namespace std;
int main()
{
    cout << "输入一个数:" ;
    int n;
    cin >> n;
    cout << endl;
    int a = 1;
    int m;
    do
    {
        m = n/10;
        if(m>0)
            a++;
    }while(m>0);

    cout << a << endl;
    return 0;
}

如果输入一个12,m=12/10=1,则进入死循环。
没看明白设计目的。

n的值没有发生变化,所以当是多位数的时候m的值就会一直大于0,陷入死循环

当n大于10时m永远大于0,死循环了。

一看就知道这货要输出输入数字的位数…不过没实现好……

谢谢

  #include <iostream>
using namespace std;
int main()
{
    cout << "输入一个数:" ;
    int n;
    cin >> n;
    cout << endl;
    int a = 1;
    int m;
    m = n;
    do
    {
        m/=10;
        if(m>0)
            a++;
    }while(m>0);

    cout << a << endl;
    return 0;
}