C语言程序编码,求方程式ax2+bx+c=0的根。分别考虑:①有两个不等的实根;②有两个相等的实根。
时间: 2023-05-22 07:02:34 浏览: 128
对于方程式ax²+bx+c=0的根,可以使用以下公式:
①有两个不等的实根:
x1 = (-b+sqrt(b²-4ac))/(2a)
x2 = (-b-sqrt(b²-4ac))/(2a)
②有两个相等的实根:
x = -b/(2a)
其中,a、b、c分别代表方程中的系数,sqrt为平方根运算符。
需要注意的是,在输入系数之前,需要先对a进行检查,如果a为0,则方程无解。
相关问题
C语言,求方程式ax2+bx+c=0的根。分别考虑:①有两个不等的实根;②有两个相等的实根。
①有两个不等的实根:
根据公式,有两个根分别为:
x1 = (-b + sqrt(b^2 - 4ac)) / (2a), x2 = (-b - sqrt(b^2 - 4ac)) / (2a)
其中,b^2 - 4ac > 0
②有两个相等的实根:
根据公式,有一个根为:
x = -b / 2a
其中,b^2 - 4ac = 0
c语言 求方程式ax2+bx+c=0的代码
以下是求解一元二次方程ax^2 + bx + c = 0的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数(a, b, c):\n");
scanf("%lf %lf %lf",&a, &b, &c);
delta = b*b - 4*a*c;
if(delta > 0) {
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("方程有两个不相等的实根:x1 = %.2lf, x2 = %.2lf\n", x1, x2);
} else if(delta == 0) {
x1 = x2 = -b / (2*a);
printf("方程有两个相等的实根:x1 = x2 = %.2lf\n", x1);
} else {
printf("方程没有实根\n");
}
return 0;
}
```
注:sqrt()函数需要在math.h库中引入。