首次运行后反向编号功能无法正常工作

时间:2016-11-03 04:46:12

标签: c++

这是我的代码:

#include <iostream>
using namespace std;

int rev(int i) {
    int ret;
    while (i >= 1) {
        ret += i%10;
        i /= 10;
        ret *= 10;
    }
    return ret/10;
}

int main() {

    //rev(4);
    cout << rev(123) << endl;

    return 0;
}

当我跑步时,我会得到“321”,就像我应该的那样 但当我取消评论上面的一行时,我得到“4321”! 这是为什么?

2 个答案:

答案 0 :(得分:3)

未初始化ret。您有一个预先存在的垃圾值与计算混合在一起。

int ret = 0;

一个去。

答案 1 :(得分:2)

int ret;的初始值未定义(任何值)。将其替换为int ret = 0;

相关问题