输入a.b.c a=0 T F 输出不是 b2-4ac=0 "二次方程" T F 计算和输 b2-4ac>0 出两个相 F 等的实根 计算和输 计算和输 出两个不 出两个共 等实根 轭复根 c语言 求ax2+bx+c=0方程的解。
时间: 2024-12-15 14:19:37 浏览: 14
在C语言中,你可以通过函数实现求解一元二次方程 \( ax^2 + bx + c = 0 \) 的解。首先,需要检查判别式的性质以确定解的情况。以下是可能的流程:
```c
#include <stdio.h>
#include <math.h>
void solve_quadratic(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (a == 0) {
// 如果a为0,这不是一个二次方程
printf("输入错误:这不是一个二次方程\n");
return;
}
if (discriminant == 0) {
// 二次方程有唯一实根
double root = -b / (2 * a);
printf("解: x = %.2lf\n", root);
} else if (discriminant > 0) {
// 二次方程有两个不同的实根
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("解: x1 = %.2lf, x2 = %.2lf\n", root1, root2);
} else {
// 二次方程有两个共轭复数根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("解: x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("请输入a, b, c的值: ");
scanf("%lf %lf %lf", &a, &b, &c);
solve_quadratic(a, b, c);
return 0;
}
```
当你运行这个程序并输入a, b, c的值时,它会根据判别式的条件打印出对应的根。如果你输入的是a=0的情况,程序会提示这不是一个二次方程。
阅读全文