计算5到3的幂,但它返回0.为什么?

时间:2011-05-25 07:59:39

标签: c++ function

#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;
}

你好,请问这段代码中的错误在哪里?

谢谢!

4 个答案:

答案 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。