这是一位新生写的求位数的程序,为什么这个循出不来了,难道说x不能作为判断的变量吗?真的搞不懂。
有bug,我改了一下
bug:原来的程序输入个位数会显示为 2 位数
然后 while 里面的条件要改为 x > 10 ,意思是只要 x 大于 10 循环就一直进行,当 x 小于 10 它自然就结束循环了
#include <iostream>
using namespace std;
int main()
{
int x, a;
cout << "请输入有一个不大于5位的正整数:" << endl;
cin >> x;
a = x;
int i = 1;
if (x < 10)
{
cout << a << "的位数为:" << i << endl;
}
else {
do {
i++;
x /= 10;
} while (x > 10);
cout << a << " 的位数为:" << i << endl;
}
return 0;
}
运行结果如下
C++ 中的 while 语句并不是 一直……直到…… 的意思
而是 只要……就…… 的意思
即判断条件为 假 时退出
所以你这要改成 while(x > 10)
我可以出来呀,你要输入一个数,然后回车。