c语言一元二次方程求解
时间: 2024-10-13 22:01:54 浏览: 63
c语言求解一元二次方程问题
在C语言中,我们可以使用公式法来解决一元二次方程,通常形式为 ax^2 + bx + c = 0。其中a、b和c是常数,a不等于0。下面是一个简单的程序示例,它使用了求根公式:
```c
#include <stdio.h>
#include <math.h>
// 定义函数求解二次方程
double solve_quadratic(double a, double b, double c) {
double delta = b * b - 4 * a * c; // 计算判别式delta
if (delta > 0) { // 有两个实根的情况
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("两个实根分别为: %.2lf 和 %.2lf\n", x1, x2);
} else if (delta == 0) { // 有一个实根或重根的情况
double root = -b / (2 * a);
printf("一个实根为: %.2lf\n", root);
} else { // 无实根,有复根的情况
double real Part = -b / (2 * a);
double imagPart = sqrt(-delta) / (2 * a);
printf("两个复根分别为: %.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imagPart, realPart, imagPart);
}
}
int main() {
double a, b, c;
printf("请输入二次方程的系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
if (a != 0) { // 防止除以零错误
solve_quadratic(a, b, c);
} else {
printf("错误:a不能为0。\n");
}
return 0;
}
```
阅读全文