发现逻辑错误c ++

Mic*_*all 1 c++

#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;
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是当我输入像564这样的东西(想得到465作为回报)我得到462.我无法在代码中发现逻辑错误.请注意,我是编码和堆栈溢出的新手,所以请不要太苛刻.任何帮助将不胜感激.

nic*_*yte 6

你忘了初始化decval为0.它可能包含一个任意值,会弄乱你的结果.