#include <iostream>
#include <string>
#include <cmath>

using namespace std;

int main(int argc, char **argv)
{
    string c;
    int k = 0, decval, i;
    cout << "Please input your number starting from lowest value number to highest" << endl;
    cin >> c;
    //the for loop takes a backwards integer and makes it forwards.
    for(i = 0; i < c.length(); i++){
        decval += (c[i] - '0') * pow(10, k);
        ++k;
    }
    cout << decval;
    return 0;
}

所以我的问题是,当我输入类似564的内容(想要返回465)时,我得到462。我无法在代码中发现逻辑错误。请注意,我对编码和堆栈溢出都是新手,所以请不要太苛刻。任何帮助将不胜感激。

最佳答案

您忘记将decval初始化为0。它可能包含一个任意值,会使您的结果困惑。

10-06 13:09