如何用c语言求一元二次方程的解
时间: 2023-05-19 07:05:42 浏览: 65
可以使用以下代码来求解一元二次方程的解:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, discriminant, root1, root2;
printf("Enter coefficients a, b, and c: ");
scanf("%lf %lf %lf", &a, &b, &c);
discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("Roots are real and different.\n");
printf("Root 1 = %.2lf\n", root1);
printf("Root 2 = %.2lf\n", root2);
} else if (discriminant == 0) {
root1 = root2 = -b / (2 * a);
printf("Roots are real and same.\n");
printf("Root 1 = Root 2 = %.2lf\n", root1);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("Roots are complex and different.\n");
printf("Root 1 = %.2lf + %.2lfi\n", realPart, imaginaryPart);
printf("Root 2 = %.2lf - %.2lfi\n", realPart, imaginaryPart);
}
return 0;
}
```
其中,a、b、c 分别代表一元二次方程的系数,discriminant 代表判别式,root1 和 root2 分别代表方程的两个根。根据判别式的值,可以判断方程的根的情况,如果判别式大于 0,则方程有两个不同的实根;如果判别式等于 0,则方程有两个相同的实根;如果判别式小于 0,则方程有两个不同的复根。