Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果结构作为递归函数中的参数传递,如何初始化结构的成员变量?_C++_Recursion_Data Structures_Boolean_Structure - Fatal编程技术网

C++ 如果结构作为递归函数中的参数传递,如何初始化结构的成员变量?

C++ 如果结构作为递归函数中的参数传递,如何初始化结构的成员变量?,c++,recursion,data-structures,boolean,structure,C++,Recursion,Data Structures,Boolean,Structure,请帮忙! 我将作为参数传递给函数的结构是: 我的查询上下文中的sumarised代码 struct mine_index { int row, col; }; struct miner { bool up, down, right, left; }; can_solve(mine_index start, mine_index end, miner the_miner) { can_solve(start(row+1,col), end, miner the_miner

请帮忙! 我将作为参数传递给函数的结构是:

我的查询上下文中的sumarised代码

struct mine_index
{
    int row, col;
};
struct miner
{
    bool up, down, right, left;
};

can_solve(mine_index start, mine_index end, miner the_miner)
{
    can_solve(start(row+1,col), end, miner the_miner);
    return ;
}
下面给出了递归函数的完整代码

bool can_solve(mine_index start, mine_index end, miner the_miner)
{

    bool solution[size-1][size-1]
    for (int i=0; i<size; i++)
    {
        for (int j=0; j<size; j++)
        {
            solution[i][j]=0;
        }
    }
    if(start.row==size-1 && start.col==size-1)//base case 
    {
        solution[start.row][start.row]=1
        return true;
        {
            if(start.row>=0 && start.row<size-1 && start.col>=0 && start.col<size-1) //
            {
                solution[start.row][start.col]=1;
            }
            if(can_solve(start(row+1,col), end, miner the_miner))
            {
                return true;
            }   
            if(can_solve(start(row,col+1), end, miner the_miner))
            {
                return true;
            }
            if(can_solve(start(row-1,col), end, miner the_miner))
            {
                return true;
            }
            if(can_solve(start(start.row,start.col-1), end, miner the_miner))
            {
                return true;
            }   
        }
bool can\u solve(挖掘索引开始,挖掘索引结束,矿工矿工矿工)
{
布尔溶液[尺寸-1][尺寸-1]

对于(inti=0;i,代码中有一些小的语法错误。 例如:

  • 使用关键字end
  • 错误的开闭卷曲括号
  • 等等
首先,我认为你应该尝试使用C++的IDE编写代码(比如作为代码块)。IDE会注意到你的语法错误。
在纠正所有语法错误之前,可以考虑函数在下一步中使用。

代码中有一些语法错误。 例如:

  • 使用关键字end
  • 错误的开闭卷曲括号
  • 等等
首先,我认为你应该尝试使用C++的IDE编写代码(比如作为代码块)。IDE会注意到你的语法错误。 在纠正所有语法错误之前,您可以考虑函数在下一步中使用。

< P>而不是<代码>开始(r,c)< /> >,您只需要<代码> {r,c}创建<代码> MIEEX索引< /C> >,而不是:

        if(can_solve(start(row+1,col), end, miner the_miner))
你想要:

        if(can_solve({row+1,col}, end, the_miner))
但是我怀疑每次调用
都可以解决问题
是否有自己的
解决方案
副本。我认为外部可见函数需要创建
解决方案
(一次),然后将其传递给内部函数。然后内部函数是递归的。(这实际上是递归函数的一种非常常见的模式:外部函数设置东西,然后调用内部递归函数。)

而不是
start(r,c)
,您只需要
{r,c}
来创建
mine\u索引即可

        if(can_solve(start(row+1,col), end, miner the_miner))
你想要:

        if(can_solve({row+1,col}, end, the_miner))

但是我怀疑每次调用
都可以解决问题
是否有自己的
解决方案
副本。我认为外部可见函数需要创建
解决方案
(一次),然后将其传递给内部函数。然后内部函数是递归的。(这实际上是递归函数的一种非常常见的模式:外部函数进行设置,然后调用内部递归函数。)

它编译吗?它编译吗?