我觉得我的代码是正确的,但执行仍然是错误的,为什么?

时间:2017-09-30 08:17:03

标签: c++

我试图用循环制作一个数字计数器。我很确定我的代码是正确的,但执行情况与我想要的不同。有人能告诉我我做错了吗?

这是我的代码

#include <iostream>
using namespace std;

int main()
{
    long long x,y;
    int i;

    cout << "Input X : ";
    cin >> x;

    i=0;
    y=x;

    while(x>0){
        x=x/10;
        i++;
        cout <<i;
    }

    cout <<y<<" is made up of "<<i<<" digits."<<endl;

    return 0;
}

所以,执行是:

输入X:5000

12345000由4位数字组成

为什么输出与输入不一样?有什么问题?

2 个答案:

答案 0 :(得分:4)

1234前面的12345000是由于你在while循环结束时有cout <<i语句。

答案 1 :(得分:0)

&#13;
&#13;
#include <iostream>
using namespace std;

int main()
{
    long long x,y;
    int i;

    cout << "Input X : ";
    cin >> x;

    i=0;
    y=x;

    while(x>0){
        x=x/10;
        i++;
    }

    cout <<y<<" is made up of "<<i<<" digits."<<endl;

    return 0;
}
&#13;
&#13;
&#13;

现在您的代码将正常运行