int checkWinDiagonals(char board[N][M])
{
for(int i = 0; i < (N-3); i++)
{
for(int j = 0; j < (M-3); j++)
{
if(board[i][j] != ' ' && board[i][j] == board[i+1][j+1])
{
if (board[i][j] == board[i+2][j+2] && board[i][j] == board[i+3][j+3])
{
return 1;
}
}
}
}
for(int i = 0; i < (N-3); i++)
{
for(int j = 3; j < M; j++)
{
if(board[i][j] != ' ' && board[i][j] == board[i+1][j-1])
{
if( board[i][j] == board[i+2][j-2] && board[i][j] == board[i+3][j-3])
{
return 1;
}
}
}
return 0;
}
}
我得到这个错误&#34;控制到达非空函数的结束&#34;。忘记int main()因为这只是它不起作用的代码的一部分。我必须放回(东西);在某个地方?
答案 0 :(得分:0)
您应该使用一致的缩进真正格式化您的代码,以便更容易发现 lot 这样的错误。但我怀疑问题就在这里:
//...
}
return 0;
}
// right here
}
如果这些循环没有任何内容可以迭代并完全跳过,那么在运行时会发生什么?或者各种if
块不评估为true并被跳过?到达函数的末尾并且没有返回任何内容,但声明该函数返回int
,因此必须返回。
您需要构建代码以始终在任何逻辑情况下返回值。在这种情况下,可能涉及在前面的逻辑没有任何结束时返回默认值。