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

标签 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;
}

最佳答案

如果它不能是全局的,那么在确定矩阵的大小后,您必须在 main 函数中删除它。

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

对于您的函数,您必须将矩阵作为参数传递给函数,如下所示:

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

您还需要在每个 if 语句中添加检查,以确保当玩家选择网格边缘的图 block 时不会超出矩阵的范围。

希望这有帮助!如果您需要进一步说明或有更多问题,请在评论中询问。

关于c - 如何使用函数修改数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40344916/

相关文章:

java.lang.NullPointerException,出了什么问题?

console - 如何修复 Google OAuth API - (403) 在您的 API key 上配置了 per-IP 或 per-Referer 限制

c - 第二个线程没有打印 - 带有互斥锁的 pthreads

javascript - 如何简洁地创建 JavaScript 数组数组,每个数组具有不同的长度(每行都有不同的指定长度)?

将 Unix Sort 命令转换为快速排序

sql - 在 postgreSQL 中索引和查询高维数据

python - 从椭球置信区域均匀采样

c# - 绘制垂直金字塔

c - 打印 float 然后打印数组时出现奇怪的行为

c - 在缓冲区内取消引用