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

Compute 5 to the power of 3, but it returns 0. Why?

本文关键字:返回 为什么 的幂 计算      更新时间:2023-10-16
#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;
}

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

谢谢!

因为result已初始化为0。正如我们所知,0 * anything == 0。你需要从1开始。

[以后,请学习如何调试!如果您在调试器中逐步执行代码,或在函数中添加一些printf语句,您会很容易发现这一点。]

错误为double result(0.0);。0乘以任何值都是0。

必须是double result(1.0);

在幂函数中,result初始化为0.0,然后当你将其乘以z n倍时,你只需将0乘以z。

您应该更改double result(1.0);

您的结果应该初始化为1.0,而不是0.0。