0

假设我有一个如下所示的矩阵[4][10]:

**********
**********
**********
**********

我想输入一个坐标并删除坐标右侧和下方的所有内容。

例如,如果坐标是 3, 5,它将如下所示:

**********
**********
****
****

如果坐标为 1, 1,它将如下所示:

(blank)

我试图用循环来做到这一点,但我只成功地删除了坐标右侧的所有内容,而不是它下面的所有内容:

for(x; x <= 4; x++)
{
    for(y; y <= 10; y++)
    {
        matrix[x-1][y-1] = ' ';
    }
}
4

1 回答 1

3

问题是,在完成外for循环的第一次迭代后,y 的值没有更新,所以它仍然是11.

void removeBottomRight( char matrix[4][], int x, int y )
{
    for( int xi = x; xi <= 4; ++xi )
    {
        for( int yi = y; yi <= 10; ++yi )
            matrix[xi-1][yi-1] = ' ';
    }
}
于 2013-11-04T18:26:57.690 回答