清除阵列时如何使用模数?

时间:2014-12-07 22:17:27

标签: c++

我有一个清除多维数组的方法。而不是两个for循环,我使用一个for O(n)。在这样做时,我必须检查它是否每次都在每行中达到数组的宽度。

我正在尝试使用模数来查看我是否等于宽度,或者是宽度的两倍等等,所以它会转到下一行。当i = 0且m_width = 5时,调试器进入第二个代码块,但这不正确,所以我的算法必定是错误的。我不经常使用模数,所以我确定这是麻烦。我怎样才能解决这个问题?先谢谢你。

// Clear the cells with the requested value.
for (int i = 0; i < size; i++)
{    
    // If the width has been reached, go to the next row. 
    if ((i % m_width) == 0) 
    {
        row++;
        col = 0;
    }  

1 个答案:

答案 0 :(得分:1)

你的问题是0模数任何数字都等于0.如果你检查i&gt;在模数检查之前,它应该正常工作。