酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c++ 求方程ax*2+bx+c 的根,将判别式δ写为delta函数,并根据其结果求一元二次方程的根。 输入格式1: "%f%f%f" 输出格式1: 实根情况:"%.2f\n" 虚根情况:"%.2f\n"

好的,以下是一个用C++编写的程序,它可以根据输入的系数a、b和c来计算一元二次方程 $ax^2 + bx + c = 0$ 的根。程序首先计算判别式 $\Delta$(delta),然后根据判别式的值来判断根的类型(实根或虚根),并输出相应的结果。 ```cpp #include <iostream> #include <cmath> #include <iomanip> // 用于设置输出格式 using namespace std; int main() { float a, b, c; cin >> a >> b >> c; // 计算判别式 delta float delta = b * b - 4 * a * c; // 根据判别式的值求根 if (delta > 0) { // 两个不同的实根 float root1 = (-b + sqrt(delta)) / (2 * a); float root2 = (-b - sqrt(delta)) / (2 * a); cout << "实根情况:" << fixed << setprecision(2) << root1 << endl; cout << "实根情况:" << fixed << setprecision(2) << root2 << endl; } else if (delta == 0) { // 一个实根(重根) float root = -b / (2 * a); cout << "实根情况:" << fixed << setprecision(2) << root << endl; } else { // 两个虚根 float realPart = -b / (2 * a); float imaginaryPart = sqrt(-delta) / (2 * a); cout << "虚根情况:" << fixed << setprecision(2) << realPart << "+" << imaginaryPart << "i" << endl; cout << "虚根情况:" << fixed << setprecision(2) << realPart << "-" << imaginaryPart << "i" << endl; } return 0; } ``` 注意事项: 1. 输入格式: - 确保输入格式与程序要求一致,即 `%f%f%f`,对应三个浮点数a、b、c。 2. 输出格式: - 实根情况使用 `"%.2f\n"` 格式输出,保留两位小数。 - 虚根情况同样使用 `"%.2f\n"` 格式输出实部和虚部,注意带上 `i` 表示虚数单位。 3. 逻辑点: - 数值稳定性:当计算判别式 `delta` 时,注意浮点数的精度问题,虽然在这个简单例子中影响不大,但在更复杂的数值计算中需要考虑。 - 异常处理:可以添加对a是否为0的检查,因为当a为0时,方程退化为一次方程。 - 输入验证:确保输入的值是有效的浮点数,可以添加输入验证逻辑来处理非法输入。 [2024-12-09 22:36:43 | AI写代码神器 | 646点数解答]

相关提问