Int值奇怪地类似于指针

noc*_*der 0 c++ pointers integer

我已经发布了一些我在这里写的代码:http : //ideone.com/2TrjcN包含在给定的输出中.这是它的另一个副本:

#include <iostream>
using namespace std;

int Problem2(void);

int main() 
{
    int sum2 = Problem2();
    cout << "sum2 is: " << sum2 << endl;
}

int Problem2 (void)
{
    int sum = 0;
    int isEvenPrev = 0;
    int isEvenCurr = 2;

    for (int i=3 ; i<20; i++)
    {
            // determine if i is even
            if (i%2 == 0)
            {
                    isEvenPrev = isEvenCurr;
                    isEvenCurr = i;
                    sum += (isEvenPrev + isEvenCurr);
                    cout << "isEvenPrev: " << isEvenPrev << cout << " isEvenCurr: " << isEvenCurr    << " sum: "<< sum << endl;
            }
    }

    return sum;
}
Run Code Online (Sandbox Code Playgroud)

我对小算法非常有信心,其目的是:"Fibonacci序列中的每个新术语都是通过添加前两个术语生成的.从1和2开始,前10个术语将是:

1,2,3,5,8,13,21,34,55,89 ......

通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和."

isEvenPrev的值打印出看起来像指针的东西,但我所做的就是将已经是int的值设置为另一个已经是int的值.

有人可以告诉我可能出错的地方.Fibonacci序列实际上是有效的,直到我得到非常大的值.总和变为负数.

lar*_*red 5

cout从这一行中删除第二个:

 cout << "isEvenPrev: " << isEvenPrev << cout << " isEvenCurr: " << isEvenCurr    << " sum: "<< sum << endl;
Run Code Online (Sandbox Code Playgroud)