C-循环到“C”;“植物矿山”;在二维阵列扫雷艇中';行不通

C-循环到“C”;“植物矿山”;在二维阵列扫雷艇中';行不通,c,arrays,multidimensional-array,codeblocks,minesweeper,C,Arrays,Multidimensional Array,Codeblocks,Minesweeper,我的任务是为C/C++类创建一个简单的扫雷舰克隆。它需要使用10x10字符2D阵列作为雷区 我需要在现场随机放置5枚地雷。空点应该用空格(“”)填充,而带有地雷的点应该用散列(“#”)填充 下面是创建二维数组的代码。数组在main()函数外部(上面)声明,但在main()函数内部初始化: ... #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <time.h>

我的任务是为C/C++类创建一个简单的扫雷舰克隆。它需要使用10x10字符2D阵列作为雷区

我需要在现场随机放置5枚地雷。空点应该用空格(“”)填充,而带有地雷的点应该用散列(“#”)填充

下面是创建二维数组的代码。数组在main()函数外部(上面)声明,但在main()函数内部初始化:

...
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>

static char minefield[10][10];

main(){

    for (int row = 0; row < 10; row++){
        for (int colm = 0; colm < 10; colm++){
            minefield[row][colm] = ' ';
        }
    }
...
此时,程序将终止并打印几秒钟的执行时间

我的IDE似乎没有报告任何错误(我使用的是代码块)

我做错了什么?

注意:

我在代码中犯了一个错误。我将一个变量直接放入puts()函数(例如puts(variable))中,而不是使用printf(例如printf(“%c”,variable)),这会导致程序挂起

直到我看到一个名为repl.It的网站,该网站有一个调试器,向我显示了问题所在

如果这给任何人带来不便,我很抱歉。但是谢谢你帮了我这么多


顺便问一下,有人知道我如何在我的代码块IDE中使用这个功能吗?当我使用EclipseIDEforJava时,这个调试被包括在内,但由于某种原因,没有包含在代码块中。我几乎没有使用IDE的经验。

您提供的代码很好。错误在别的地方。最好是<代码> int()/<代码>然后只是代码>主()/<代码>。请张贴。考虑在ValgRIND下运行。它将标记许多内存访问错误,希望能给您一些关于如何继续的提示。或者,只需单步执行代码。对于gdb。@Kamil Cuk,似乎更改int main()并不能解决任何问题。然而,我确实发现了一些新的东西!我试过运行程序好几次,当循环尝试检查雷区[0][0]并分配“#”时,它没有挂起!有些东西仍然关闭,我无法判断出什么地方出了问题…@MikeCAT除了调试我在这里提到的代码之外,没有其他东西了。因此,给出整个代码可能会非常混乱,而且有点无益。
...  
    srand(time(0)); //Defining seed for random

    int randRow;
    int randColm;

    for (int count = 0; count < 5;){
        randRow = rand() % 10;
        randColm = rand() % 10;
        if (minefield[randRow][randColm] != ' '){ //tests if space is occupied
            continue;
        }
        minefield[randRow][randColm] = '#'; //planting the mine
        count++;
    }
...
minefield[randRow][randColm] = '#';