编写代码实现一元二次方程ax2+bx+c=0的根。c语言
时间: 2023-05-23 20:05:15 浏览: 76
实现如下:
```
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数(顺序为ax^2+bx+c=0)\n");
printf("a=");
scanf("%f", &a);
printf("b=");
scanf("%f", &b);
printf("c=");
scanf("%f", &c);
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("方程无实数根\n");
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实数根,x1 = x2 = %.2f\n", x1);
} else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不同的实数根,x1 = %.2f, x2 = %.2f\n", x1, x2);
}
return 0;
}
```
首先通过 `scanf()` 函数获取输入的系数 `a`、`b` 和 `c` 的值,然后计算判别式 `delta = b * b - 4 * a * c`。再根据判别式的值进行分类讨论,输出不同的根的解法,即实数根、相等实数根或无实数根。其中,`sqrt()` 表示计算平方根。