C++实现:读入系数解一元二次方程,含代码及详细解释
```cpp #include <iostream> #include <iomanip> #include <cmath> int main() { double a, b, c; std::cin >> a >> b >> c; double delta = b * b - 4 * a * c; if (delta > 0) { double x1 = (-b + std::sqrt(delta)) / (2 * a); double x2 = (-b - std::sqrt(delta)) / (2 * a); std::cout << std::fixed << std::setprecision(2) << "x1=" << x1 << " x2=" << x2 << std::endl; } else if (delta == 0) { double x1 = -b / (2 * a); std::cout << std::fixed << std::setprecision(2) << "x1=" << x1 << std::endl; } else { std::cout << "No answer" << std::endl; } return 0; } ``` 代码解释: 1. 头文件包含: - `#include <iostream>`:用于输入输出操作。 - `#include <iomanip>`:用于设置输出的精度。 - `#include <cmath>`:用于数学计算,这里使用`sqrt`函数计算平方根。 2. 主函数: - 定义三个双精度浮点数`a`、`b`、`c`,用于存储用户输入的一元二次方程的系数。 - 使用`std::cin`从标准输入读取三个浮点数赋值给`a`、`b`、`c`。 - 计算判别式`delta = b * b - 4 * a * c`。 3. 判断判别式的值: - 如果`delta > 0`,说明方程有两个不同的实根,使用求根公式计算两个根`x1`和`x2`,并按照要求的格式输出,保留两位小数。 - 如果`delta == 0`,说明方程有一个实根,使用求根公式计算根`x1`,并按照要求的格式输出,保留两位小数。 - 如果`delta < 0`,说明方程没有实根,输出`No answer`。 4. 精度设置: - `std::fixed`:设置输出为固定点表示法。 - `std::setprecision(2)`:设置输出的小数位数为2。 5. 返回值: - 主函数返回0,表示程序正常结束。 ######[AI问答 | 594点数解答 | 2025-12-10 22:07:03]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)342
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)239
- Java 实现计算所需最少钱币张数和个数(字节豆包 | 590点数解答 | 2026-03-05 21:44:59)18
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)263
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)260
- 求解 1 至 n 内第 k 大孤独数:质数与余数的巧妙探寻(字节豆包 | 298点数解答 | 2025-11-10 20:01:57)151
- 巧判小朋友同桌意愿:满足需求还是无解难题?(字节豆包 | 599点数解答 | 2025-11-16 20:06:12)66
- 巧用代码判断:能否让 2n 个小朋友都拥有满意同桌?(字节豆包 | 445点数解答 | 2025-11-16 20:07:02)77
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)457
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)353
- Python 实现:读取 n 个整数并打印最大数及其位置号(DeepSeek | 238点数解答 | 2025-05-27 20:13:13)126