C语言代码生成求一元二次方程ax2+bx+c=0的根
时间: 2024-10-11 15:08:51 浏览: 281
c代码-求ax平方+bx+c+=0
5星 · 资源好评率100%
在C语言中,我们可以编写函数来计算一元二次方程的根,这通常涉及到使用求根公式。对于一般形式的二次方程 \( ax^2 + bx + c = 0 \),其解可以通过下面的公式计算:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
下面是一个简单的C函数示例,使用了`<math.h>`库来进行浮点数的平方根运算:
```c
#include <stdio.h>
#include <math.h>
// 定义求解二次方程的函数
void quadraticRoots(double a, double b, double c) {
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 if (discriminant == 0) { // 双重实根
double root = -b / (2 * a);
printf("有一个双重实根:%.2lf\n", root);
} else { // 两个复根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("有两个共轭复根:%.2lf + %.2lfi 和 %.2lf - %.2lfi\n",
realPart, imaginaryPart, realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程的系数(a, b, c): ");
scanf("%lf %lf %lf", &a, &b, &c);
quadraticRoots(a, b, c);
return 0;
}
```
阅读全文