用C语言求一元二次方程a*x*x+b*x+c=0的根
时间: 2023-09-03 10:16:51 浏览: 283
C语言解一元二次方程的根
4星 · 用户满意度95%
好的,我可以为您提供求解一元二次方程的C语言代码。请见下方:
```
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, x1, x2, discriminant, realPart, imaginaryPart;
printf("Enter coefficients a, b and c: ");
scanf("%f %f %f",&a, &b, &c);
discriminant = b*b - 4*a*c;
// real and different roots
if (discriminant > 0)
{
x1 = (-b + sqrt(discriminant)) / (2*a);
x2 = (-b - sqrt(discriminant)) / (2*a);
printf("Roots are: %.2f and %.2f",x1 , x2);
}
// real and same roots
else if (discriminant == 0)
{
x1 = x2 = -b / (2*a);
printf("Roots are: %.2f and %.2f", x1, x2);
}
// complex roots
else
{
realPart = -b/(2*a);
imaginaryPart = sqrt(-discriminant)/(2*a);
printf("Roots are: %.2f+%.2fi and %.2f-%.2fi", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}
```
在这段代码中,我们使用了`scanf()`函数从用户输入中读取三个系数a、b和c,然后计算判别式`discriminant`的值。
接下来根据判别式的值,我们判断方程的根的类型,即实根、重根或复根,并分别计算根的值。最后,我们使用`printf()`函数将计算出的根输出到屏幕上。
希望这个程序对您有所帮助!
阅读全文