【发布时间】:2018-03-12 00:27:34
【问题描述】:
我知道输出并且打印正确:49 49 46 40 31 19 4 但是它是如何通过这个等式 tempList[j+1] + j * num 到达那里的?据我了解,如果我拿走+ j * num,结果将是1010101。但是在括号中添加j+1 使其成为444444。那么j*num 是如何成为最终结果的呢?
#include <iostream>
using namespace std;
int main()
{
int *tempList;
int num = 3;
tempList = new int[7];
tempList[6] = 4;
for (int j = 5; j >= 0; j--)
{
tempList[j] = tempList[j+1] + j * num;
}
for (int j = 0; j < 7; j++)
{
cout << tempList [j] << " ";
}
cout << endl;
}
【问题讨论】:
-
那么
j*num是如何成为最终结果的呢? -- 因为程序完全按照它的指示去做? -
是的,但我的问题是它是如何到达那里的?这个等式让我很困惑: tempList[j+1] + j * num
-
为什么不手动跟踪它,或者更好的是,使用调试器跟踪它?该程序没有魔法。
-
我试过,甚至把它拆开,如上所述。能给我举个例子吗
-
拿出一张纸。用方框绘制
tempList数组。有一列j值。逐步运行该循环,擦除并替换生成的值的框,并递减j值。如果你做不到,那么我不知道还能告诉你什么,因为它是编程的基础——能够手动完成。