新手语法问题:错误:预期';' 在')'令牌之前

han*_*nah 0 c

在for for循环中(即:for(len ...和for(wid ...),我收到相同的错误消息:

错误:预期';' 在')'令牌之前

void
init(void)
{
    //fills board up with numbers
    int tile = (d*d - 1);
    int len = 0;
    int wid = 0;

    for(len < d; len++)
        {
            for(wid < d; wid++)
                {
                    board[len][wid] = tile;
                    tile--;
                }
        }
}
Run Code Online (Sandbox Code Playgroud)

很抱歉像以前一样问一个类似的问题,但我是一个非常困惑的新手!

Lev*_*von 5

每个for循环需要有3个部分(初始化,测试,更新),如果你没有它们中的一个或多个,你仍然必须提供这两个部分;,所以

for(len < d; len++)
    ^
    |
Run Code Online (Sandbox Code Playgroud)

应该真的

    |
    v
for(;len < d; len++)
Run Code Online (Sandbox Code Playgroud)

和你的函数中的另一个for循环相同.

例如,这是使用以下方法设置无限循环的方法for:

for(;;)
Run Code Online (Sandbox Code Playgroud)

跳过所有部分的地方,但仍需要两个分号.

也许这是关于for循环的教程/参考作为评论/参考是有用的.


Ole*_*ksi 5

通常,for循环有三个部分:

for (initialization; check; update) { ... }
Run Code Online (Sandbox Code Playgroud)

在您的代码中,您缺少初始化部分.您在for循环中缺少一个半冒号,表示您不需要初始化子句(因为您在上面执行此操作):

void
init(void)
{
//fills board up with numbers
int tile = (d*d - 1);
int len = 0;
int wid = 0;

for(;len < d; len++)
    {
        for(;wid < d; wid++)
            {
                board[len][wid] = tile;
                tile--;
            }
    }
Run Code Online (Sandbox Code Playgroud)

}