C++ 对于循环-“;错误:应为“声明”;

C++ 对于循环-“;错误:应为“声明”;,c++,for-loop,multidimensional-array,visual-studio-2013,console,C++,For Loop,Multidimensional Array,Visual Studio 2013,Console,作为基于文本的战舰游戏的一部分,我试图在控制台中显示一个简单的网格/棋盘。不幸的是,我在做网格时出错了。网格由二维数组表示,-我使用for循环将网格的每个元素初始设置为“空”但是,当我尝试运行代码时,会出现一个错误,提示“需要声明”和“语法错误:”)”。我做错了什么?下面是有问题的代码部分: enum GridContent {SHIP, HIT, MISS, EMPTY}; const int GRID_SIZE = 10; GridContent board[GRID_SIZE][GRI

作为基于文本的战舰游戏的一部分,我试图在控制台中显示一个简单的网格/棋盘。不幸的是,我在做网格时出错了。网格由二维数组表示,-我使用for循环将网格的每个元素初始设置为“空”但是,当我尝试运行代码时,会出现一个错误,提示“需要声明”和“语法错误:”)”。我做错了什么?下面是有问题的代码部分:

enum GridContent {SHIP, HIT, MISS, EMPTY};

const int GRID_SIZE = 10;

GridContent board[GRID_SIZE][GRID_SIZE];

// Intellisense error on "for": "Expected a declaration."
for (int y = 0; y < GRID_SIZE; y++)
/* Errors for above line: "Missing ';' before '++', '<', '{', and ')'",
"Syntax error: ')'", "Syntax error: 'for'", "'int y' : redefinition"" */
{ // "Missing ';' before '{'"
    for (int x = 0; x < GRID_SIZE; x++)
        board[y][x] = EMPTY;
}
enumgridcontent{SHIP,HIT,MISS,EMPTY};
const int GRID_SIZE=10;
GridContent板[网格大小][网格大小];
//“for”上的Intellisense错误:“应为声明。”
对于(int y=0;y
for (int x = 0; x < GRID_SIZE; x++)
    board[y][x] = EMPTY;
或者

GridContent board[GRID_SIZE][GRID_SIZE];

我认为你必须用GridContent替换网格
网格板[Grid_SIZE][Grid_SIZE];

阵列名称为board,网格为某种类型。 1.所以我认为你应该使用电路板而不是网格。
2.您的数组是网格大小,当您访问时,您使用了该变量,这意味着arrayIndexOutOfBound

您声明了一个
,但随后您尝试将值分配给
网格
。此外,您的
网格
是什么也不清楚,而且您还循环了
x
y
,但随后您尝试了一个成功率(最有可能)在最后一个索引为
GRID\u SIZE-1
的数组中,无效的索引
GRID\u SIZE
很抱歉我的代码太糟糕了!我现在已经编辑过了,但仍然会出错。哇,很抱歉我的代码太乱了。我已经编辑过了,所以现在更有意义了。我仍然会出错。@Warran Penner如果你将其编译为一个C++代码不包含任何错误。非常奇怪。我试图在Visual Studio 2013中运行桌面,并且我得到了很多错误。我已经更新了代码片段来显示我正在得到的东西。感谢您的时间。@沃伦·彭纳检查程序文件扩展名是.c而不是.cp。可能是您编译程序为C程序。@Warran Penner名称空间中的外部函数(在您的情况下,似乎使用了全局名称空间),您只能放置声明。
Grid board[GRID_SIZE][GRID_SIZE];
GridContent board[GRID_SIZE][GRID_SIZE];