如何正确编写C++中的平方与立方计算函数?运行报错如何解决?
C++代码运行异常原因
- 核心问题是函数内未使用传入参数,且局部变量未初始化就参与运算
- 你编写的
squareit、cubeit函数接收的形参名为in,但函数内部完全没有用到这个外部传入的数值,反而额外定义了局部变量x,且没有给x赋任何值 - C++中未初始化的栈局部变量会存储随机垃圾值,基于该值计算得到的平方、立方结果完全不符合预期,甚至会触发程序运行异常。
修复方案
删除函数内无用的局部变量x,直接用传入的参数in做计算即可,修复后的完整代码如下:
#include <iostream> #include <iomanip> using namespace std; double squareit(double); double cubeit(double); int main() { double inputnumber; cout << "Enter a floating point number\n"; cin >> inputnumber; cout << "Your number squared is " << squareit(inputnumber) << endl; cout << "Your number cubed is " << cubeit(inputnumber) << endl; } double squareit(double in) { return in * in; } double cubeit(double in) { return in * in * in; }
内容的提问来源于stack exchange,提问作者Darin Hinze
相关产品推荐
相关产品推荐

