【发布时间】:2011-10-11 12:59:57
【问题描述】:
我知道 if 语句 if ( (roll == i) && (result == true) ) 在 2500 次迭代期间多次为真,但是当我在更高级别的 for 循环完成其 2500 次迭代后输出 winRolls[1] 或 winRolls 的任何其他索引时, winRolls[1] 的值,并且所有其他索引的最大值始终为 1。这是否与 c++ 数组的特性有关,还是我缺少其他东西?
int winRolls[10]
for (int i = 0; i < 2500; i++)
{
for (int j = 1; j < 10; j++)
if ( (roll == j) && (result == true) )
{
winRolls[roll] = winRolls[roll] + 1;
}
}
cout << winRolls[1] << endl;
cout << winRolls[2] << endl;
cout << winRolls[3] << endl;
【问题讨论】:
-
您永远不会在代码示例中修改
roll,因此您总是递增相同的数组元素,并且由于我们不知道roll的初始值,我们无法判断它是哪个元素。还要记住,数组索引在 C++ 中是从零开始的。 -
result 最初的值是多少??
-
roll 也没有初始化。
-
只是快速浏览一下,但是您是否故意将 j 从 1 开始? c(和 c++)数组的索引为 0。
-
不完整的代码,永远不要说“我知道一个陈述是真的”,测试它或向我们展示一些数据;)