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