用C语言求解一元二次方程ax+bx+c=0
时间: 2024-11-15 14:34:25 浏览: 22

Java Application和Applet两种方式求一元二次方程ax2+bx+c=0的根

当然,求解一元二次方程 \( ax^2 + bx + c = 0 \) 的标准方法是使用公式法(也称为韦达定理),但也可以使用 C 语言中的数学库来简化计算。这里我会给你提供一个简单的程序,用于求解二次方程的根。
首先确保你已经包含 `math.h` 库,因为其中有 `sqrt()` 函数用来计算平方根。
```c
#include <stdio.h>
#include <math.h>
// 函数声明
double quadratic(double a, double b, double c);
int main() {
double a, b, c;
printf("请输入二次方程的系数 (a, b, c): ");
scanf("%lf %lf %lf", &a, &b, &c); // 输入系数
if (a == 0) { // 如果a为零,方程变为线性,不是二次方程
printf("这不是一个二次方程.\n");
} else {
double discriminant = b * b - 4 * a * c; // 计算判别式
if (discriminant >= 0) {
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的两个实数根是: %.2lf 和 %.2lf\n", root1, root2);
} else {
printf("方程没有实数根,有两个复数根.\n");
}
}
return 0;
}
// 定义计算根的函数
double quadratic(double a, double b, double c) {
return (-b ± sqrt(b * b - 4 * a * c)) / (2 * a);
}
```
这个程序首先让用户输入三次多项式的系数,然后根据判别式的值判断方程的根类型并计算它们。如果 `a` 不为零,则有实数根;否则,可能有复数根。
阅读全文
相关推荐

















