Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在for循环C++中,数组中的值似乎不会增加。_C++_Arrays_For Loop - Fatal编程技术网

在for循环C++中,数组中的值似乎不会增加。

在for循环C++中,数组中的值似乎不会增加。,c++,arrays,for-loop,C++,Arrays,For Loop,我知道,在2500次迭代期间,if语句if roll==I&&result==true多次为true,但当我在更高级别的for循环完成其2500次迭代后输出winRolls[1]或winRolls的任何其他索引时,winRolls[1]的值和每一个其他索引的最大值始终为1。这是否与C++数组的特性有关,或者我是否丢失了其他的东西? int winRolls[10] for (int i = 0; i < 2500; i++) { for (int j = 1; j &l

我知道,在2500次迭代期间,if语句if roll==I&&result==true多次为true,但当我在更高级别的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;

您的代码几乎没有问题


winRolls的大小是[10],您是基于i而不是j来访问它的,j对winRolls有正确的限制。如果roll==i对于1000是真的,那么您正在访问数组范围之外的对象。这将无法帮助您获得所需的输出以及输入未定义的行为。

您在哪里初始化winRolls?如果不进行初始化,而是增加其内容,那么最终可能会得到程序每次运行时都不同的垃圾值。另外,在25000次迭代中,roll==i如何多次为真?除非您正在更新roll的值(我在代码中没有看到),否则此内部循环将仅执行一次,或者可能永远不会执行,具体取决于roll的值。

试试看,您的代码示例中从未修改过roll,所以您总是递增相同的数组元素,因为我们不知道roll的初始值,我们不知道它是哪种元素。记住C++中的数组索引是零。结果最初的值是什么?也没有初始化Road。只是快速查看一下,但是你是故意在1开始J的吗?C和C++数组在0被索引。不完整的代码,并且永远不会说我知道一个事实是一个语句,测试它或者给我们展示一些数据;