#include <iostream>
double power (double z, int n)
{
double result(0.0);
for (int i = 1; i <= n; i++)
result *= z;
return result;
}
int main()
{
int index(3);
double x(5.0), double y(0.0);
y = power (x, index);
std::cout << y << std::endl;
return 0;
}
你好,请问这段代码中的错误在哪里?
谢谢!
答案 0 :(得分:12)
因为result
已初始化为0
。正如我们所知,0 * anything == 0
。您需要从1
开始。
[将来,请学习如何调试!如果您在调试器中执行了代码,或者在函数中添加了一些printf
语句,则很容易发现这一点。]
答案 1 :(得分:1)
错误是double result(0.0);
。 0乘以任何值为0。
必须为double result(1.0);
答案 2 :(得分:1)
在你的幂函数中,你的result
被初始化为0.0,然后当你将它乘以z n次时,你只需将0乘以z。
您应该更改double result(1.0);
。
答案 3 :(得分:0)
您的结果应初始化为1.0而不是0.0。