c++标准语言编程求解一元二次方程ax2+bx+c=0的根(需要考虑a、b、c所有可能情况)。
时间: 2023-05-26 20:04:07 浏览: 142
以下是求解一元二次方程的代码实现,包含了所有可能的情况:
```
#include <stdio.h>
#include <math.h>
void solveEquation(double a, double b, double c) {
// 判断a是否为0
if (a == 0) {
if (b == 0) {
if (c == 0) {
printf("方程根为任意实数\n");
} else {
printf("方程无解\n");
}
} else {
double x = -c / b;
printf("方程根为: x = %f\n", x);
}
} else {
double delta = b * b - 4 * a * c;
if (delta < 0) {
printf("方程无实数根\n");
} else if (delta == 0) {
double x = -b / (2 * a);
printf("方程根为: x = %f\n", x);
} else {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程根为: x1 = %f, x2 = %f\n", x1, x2);
}
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程ax^2 + bx + c = 0中的系数a、b、c,中间用空格隔开:\n");
scanf("%lf %lf %lf", &a, &b, &c);
solveEquation(a, b, c);
return 0;
}
```
阅读全文