将5计算为3的幂,但它返回0.为什么
Compute 5 to the power of 3, but it returns 0. Why?
#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。
相关文章:
- 为什么 Serial.println(<char[]>);返回随机字符?
- 为什么模板类中的对象不能返回值
- 为什么(-1)%vector::size()总是返回0
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 如果"new int"返回"int*",那么为什么"new int[n]"不返回"int**"?
- 为什么我可以通过引用修改常量返回
- 有人知道为什么在开关中使用stoi函数会返回恒定的错误吗
- 为什么是谷神星协方差.计算()似乎永远运行而不返回?
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- 为什么我的程序在for循环中k=0时返回垃圾值
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 为什么返回类型中需要typename?C++
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- C 参考class对象的返回 - 为什么不工作
- C 参考和类对象的非参考返回 - 为什么输出相同
- c 参考class对象的返回 - 为什么未调用复制构造函数
- SDL_BlitSurface() 返回 -1 ..为什么
- 将5计算为3的幂,但它返回0.为什么