当输入三个实数a,b,c的值后,编程求一元二次方程式a*a+bx+c=0的实根。(需要讨论a,b,c是否等于0)C语言
时间: 2024-05-11 21:15:46 浏览: 12
代码示例:
```
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double delta, x1, x2;
printf("请输入三个实数a, b, c的值:\n");
scanf("%lf %lf %lf", &a, &b, &c);
if (a == 0 && b == 0) {
printf("此方程无解!\n");
}
else if (a == 0) {
printf("此方程为一次方程,解为:%.2lf\n", -c / b);
}
else {
delta = b * b - 4 * a * c;
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("此方程有两个实数根,分别为:%.2lf 和 %.2lf\n", x1, x2);
}
else if (delta == 0) {
x1 = -b / (2 * a);
printf("此方程有一个实数根,为:%.2lf\n", x1);
}
else {
printf("此方程无实数根!\n");
}
}
return 0;
}
```
如果输入的a,b,c中有一个为0,则会根据情况输出相应的解法。如果a,b,c都不为0,则会根据判别式的值输出有一对、两对实数根或无实数根的情况。