用c编写函数求解给定一元二次方程ax2+bx+c=0的根(a不等于0)
时间: 2024-12-15 14:20:22 浏览: 8
c代码-求ax平方+bx+c+=0
在C语言中,我们可以编写一个函数来计算给定一元二次方程的根,这通常使用公式法,也称为二次公式。这个公式是:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
下面是一个简单的示例,展示了如何创建这样的函数:
```c
#include <stdio.h>
#include <math.h> // 引入数学库,用于计算平方根
// 函数声明,返回两个浮点数,表示两个解
void quadraticRoots(float a, float b, float c);
int main() {
float a, b, c;
printf("请输入一元二次方程的系数 (a, b, c): ");
scanf("%f %f %f", &a, &b, &c); // 输入三个系数
if (a != 0) { // 检查a是否为零,防止除数为零错误
quadraticRoots(a, b, c);
} else {
printf("警告:a不能为零,无法计算。\n");
}
return 0;
}
// 函数定义,计算并打印两个解
void quadraticRoots(float a, float b, float c) {
float discriminant = b * b - 4 * a * c; // 计算判别式
if (discriminant >= 0) {
float root1 = (-b + sqrt(discriminant)) / (2 * a);
float root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的两个实根是: %.2f 和 %.2f\n", root1, root2);
} else {
printf("方程无实根,有两个复数解: %.2fi 和 %.2fi\n", -b / (2*a), sqrt(-discriminant) / (2*a));
}
}
```
当你运行这个程序,并输入一元二次方程的系数时,它会计算出对应的根。
阅读全文