Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.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++_C++_C_Function - Fatal编程技术网

两个相互调用的函数-C/C++

两个相互调用的函数-C/C++,c++,c,function,C++,C,Function,我正在写一个程序,它可以写所有由钚和铅制成的给定长度的安全链。如果没有两个钚相邻,则链条是安全的。这是我教科书中的解决方案: 所有以铅结尾的安全链长度n均通过将铅添加到以铅结尾的所有安全链长度n-1+以钚结尾的所有安全链长度n-1中制成 所有以钚结尾的长度为n的安全链都是通过向所有以铅结尾的长度为n-1的安全链中添加钚制成的 我用C++编写代码,但它不起作用,因为我有两个函数互相调用,所以当我编译程序时,编译器说: error: 'Plutonium' was not declared in t

我正在写一个程序,它可以写所有由钚和铅制成的给定长度的安全链。如果没有两个钚相邻,则链条是安全的。这是我教科书中的解决方案:

所有以铅结尾的安全链长度n均通过将铅添加到以铅结尾的所有安全链长度n-1+以钚结尾的所有安全链长度n-1中制成

所有以钚结尾的长度为n的安全链都是通过向所有以铅结尾的长度为n-1的安全链中添加钚制成的

我用C++编写代码,但它不起作用,因为我有两个函数互相调用,所以当我编译程序时,编译器说:

error: 'Plutonium' was not declared in this scope
这是我的代码:

void Lead(int k)
{
    if(k == 1)
    {
        x[1] = 'O';
        write();
    } else
    {
        x[k] = 'O';
        Lead(k-1);
        Plutonium(k-1);
    }
}

void Plutonium(int k)
{
    if(k == 1)
    {
        x[k] = 'P';
        write();
    } else
    {
        x[k] = 'P';
        Lead(k-1);
    }
}
我试着写空心钚;在功能失效的声明中;但它不起作用

有没有解决这个问题的方法或其他解决方案不会解决这个问题?

这将起作用:

void Plutonium(int k);

void Lead(int k)
{
    if(k == 1)
    {
        x[1] = 'O';
        write();
    } else
    {
        x[k] = 'O';
        Lead(k-1);
        Plutonium(k-1);
    }
}

void Plutonium(int k)
{
    if(k == 1)
    {
        x[k] = 'P';
        write();
    } else
    {
        x[k] = 'P';
        Lead(k-1);
    }
}
这将有助于:

void Plutonium(int k);

void Lead(int k)
{
    if(k == 1)
    {
        x[1] = 'O';
        write();
    } else
    {
        x[k] = 'O';
        Lead(k-1);
        Plutonium(k-1);
    }
}

void Plutonium(int k)
{
    if(k == 1)
    {
        x[k] = 'P';
        write();
    } else
    {
        x[k] = 'P';
        Lead(k-1);
    }
}

您是否在文件顶部编写了函数原型

void Lead(int k);
void Pultonium(int k);

您是否在文件顶部编写了函数原型

void Lead(int k);
void Pultonium(int k);

您需要在使用函数之前声明它,以便编译器知道函数的外观。只需添加空钚;在Lead函数之前的某个地方。

您需要在使用函数之前声明该函数,以便编译器知道该函数的外观。只需添加空钚;领导职能之前的某个地方。

您需要职能原型

你需要函数原型


您需要在代码顶部使用转发声明:

void Lead (int k);
void Plutonium (int k);

您需要在代码顶部使用转发声明:

void Lead (int k);
void Plutonium (int k);

只需添加一个函数声明?使用foward声明只需添加一个函数声明?使用foward声明哦,我写了这个,但是括号中没有int k,非常感谢Matt。这对我来说真的解决了一个大问题哦,我写的,但括号里没有int k,太感谢你了,马特。这对我来说确实解决了一个大问题