C++如何在sol_ec_II函数中获取delta函数返回值并使用
解决方法
你需要定义一个变量承接delta函数的返回值,后续所有需要用到判别式的位置直接使用这个变量即可,错误写法里直接把函数名delta当数值用是语法不允许的。
修正后的sol_ec_II函数代码:
void sol_ec_II(double a, double b, double c) { // 调用delta函数,把返回的判别式结果存入delta_val变量 double delta_val = delta(a, b, c); if (delta_val < 0) { cout << endl << "Polinomul NU are solutii."; } else { double sqrt_delta = sqrt(delta_val); // 补充原代码遗漏的除以2a步骤,符合一元二次方程求根公式 [-b±√Δ]/(2a) double x1 = (-b - sqrt_delta) / (2 * a); double x2 = (-b + sqrt_delta) / (2 * a); // 可选:输出两个根的结果 cout << endl << "x1 = " << x1 << ", x2 = " << x2; } }
原理说明:
- 带返回值的函数执行后,返回的结果是临时值,如果不主动赋值给变量保存,执行完就会被销毁,无法在后续逻辑中复用
- 代码里的
delta是函数的标识符,不能直接当作数值参与比较、运算,必须拿到它的返回值才能使用
内容的提问来源于stack exchange,提问作者user17397717
相关产品推荐
相关产品推荐

