如下文函数所示,
void game()
{ int ROWS=9;
int COLS=9;
char Mine[ROWS][COLS] = { 0};
}
void findmine(char board[ROWS][COLS], int row, int col)
{
int set = 0;
while (set < ROW * COL - e_count) {
int x, y;
scanf_s("%d %d",&x, &y);
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
//首次保护
if (set = 0) {
if (board[x][y] == '1')
board[x][y] = '0';
int a, b;
a = rand() % ROW + 1;
b = rand() % COL + 1;
board[a][b] = '1';
set++;
}
if (Mine[x][y] == '1')
{
printf_s("很遗憾,你被炸死了\n");
DisplayBoard(Mine, ROW, COL);
break;
}
else
{
int i = GetMineCount(Mine, ROW, COL);
board[x][y] = 'i';
Displayboard(Mine, ROW, COL);
set++;
}
if (set = row * col - e_count)
{
printf_s("游戏胜利\n");
Displayboard(Mine, ROW, COL);
}
}
else
printf_s("非法坐标,请重新输入");
}
}
我明明已经将Mine数组初始化了,却下面函数调用Mine数组一直报错未标识字符C2065
int i = GetMineCount(Mine, ROW, COL);
board[x][y] = 'i';
这里='i'肯定不对,但你到底是想是='1',还是等于i的值呢???那写成board[x][y] = i + '0';
if (set = 0) {
改为
if (set == 0) {
根据你提供的代码,game()函数里面的Mine数组在其他函数是访问不到的,Mine数组和ROL,COLS可以定义成全局变量 ,然后在game()函数初始化;另外findmine()函数里面的参数board[ROWS][COLS]这个也可以改下,可以改成char board[][COLS]。