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