酷代码 AI
菜单
服务商

C语言实现:根据输入解一元二次方程并输出结果

以下是用 C 语言实现上述功能的代码: ```c #include <stdio.h> #include <math.h> int main() { double a, b, c; // 读入三个浮点数 a, b, c scanf("%lf %lf %lf", &a, &b, &c); // 计算判别式 delta double delta = b * b - 4 * a * c; if (delta > 0) { // 当 delta 大于 0 时,存在两个不同的解 double x1 = (-b + sqrt(delta)) / (2 * a); double x2 = (-b - sqrt(delta)) / (2 * a); // 输出两个解,保留两位小数 printf("x1=%.2lf x2=%.2lf", x1, x2); } else if (delta == 0) { // 当 delta 等于 0 时,存在一个解 double x1 = -b / (2 * a); // 输出一个解,保留两位小数 printf("x1=%.2lf", x1); } else { // 当 delta 小于 0 时,无解 printf("No answer"); } return 0; } ``` 代码解释: 1. 输入部分:使用 `scanf` 函数读入三个浮点数 `a`, `b`, `c`,分别代表一元二次方程 `ax^2 + bx + c = 0` 的系数。 2. 计算判别式:根据公式 `delta = b * b - 4 * a * c` 计算判别式的值。 3. 判断解的情况: - 当 `delta > 0` 时,方程有两个不同的解,使用求根公式计算两个解 `x1` 和 `x2`,并使用 `printf` 函数输出,保留两位小数。 - 当 `delta == 0` 时,方程有一个解,使用求根公式计算解 `x1`,并使用 `printf` 函数输出,保留两位小数。 - 当 `delta < 0` 时,方程无解,使用 `printf` 函数输出 `"No answer"`。 复杂度分析: - 时间复杂度:$O(1)$,因为只进行了常数级的计算。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 573点数解答 | 2025-12-10 22:12:47]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]