如何使用函数修改数组值?

时间:2016-10-31 15:05:18

标签: c multidimensional-array console

我正在控制台中进行扫雷游戏,想知道如何使用函数修改数组值?

我有一个全局char table[10][10];,但它不能是全局的,我需要在启动程序时将大小更改为用户想要的大小。此外,我需要修改此函数中的table值:

int findnearbymines(int row, int col) {
    int mines = 0;

    if(table[row - 1][col] == '*')
        mines++;
    if(table[row + 1][col] == '*')
        mines++;
    if(table[row][col - 1] == '*')
        mines++;
    if(table[row][col + 1] == '*')
        mines++;

    if(table[row - 1][col + 1] == '*')
        mines++;
    if(table[row - 1][col - 1] == '*')
        mines++;
    if(table[row + 1][col + 1] == '*')
        mines++;
    if(table[row + 1][col - 1] == '*')
        mines++;

    return mines;
}

1 个答案:

答案 0 :(得分:0)

如果它不是全球性的,那么在确定矩阵的大小后,您必须在main函数中进行delcare。

在此处阅读:C - reading command line parameters以了解如何从命令行读取参数。在声明矩阵之前,您必须这样做。

至于你的功能,你必须将矩阵作为参数传递给你的函数:

int findnearbymines(int row, int col, char** table, int width, int height)

如果玩家在网格边缘选择了一个磁贴,您还需要在每个if个参数中添加检查,以确保您不会超出矩阵的范围。< / p>

希望这有帮助!如果您需要进一步澄清或有更多问题,请在评论中提出。