【发布时间】:2020-11-23 04:42:56
【问题描述】:
我在使用此功能时遇到了一些问题。该函数采用 a 并递归地计算它的 b 次方。当我编译它时,我的编译器给了我一个分段错误,我不确定如何修复。有人可以帮忙吗?
/**** Recursive power function > Computes a^b, where b can be positive or negative*****/
int recPower(double a, int b)
{
if (b == 0)
{
return 1;
}
else
{
return (a *recPower(a, b-1));
}
}
/* Computes a^b (power function) */
cout << "POWER" << endl;
cout << "----------" << endl;
int a = 2, b = -3;
cout << a << "^" << b << " = ";
cout << recPower(a, b) << endl;
cout << endl;
【问题讨论】:
-
return (a *recPower(a, b-1));当b为负数时,这将不起作用。在纸上试一试,看看为什么。 -
如果您在尝试编译时遇到分段错误,则表明存在编译器错误。也许您的意思是当您尝试运行已编译的程序时遇到分段错误?