c语言求解任意的一元二次方程的根 其中abc由键盘输入要求考虑各种的情况。
时间: 2024-03-27 08:36:35 浏览: 64
好的,下面是用C语言实现求解任意一元二次方程的根的代码,考虑了各种情况:
```
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2, x, realPart, imagPart;
printf("请输入a、b、c的值:");
scanf("%f %f %f", &a, &b, &c);
if (a == 0 && b == 0 && c == 0) {
printf("方程有无数个解\n");
} else if (a == 0 && b == 0 && c != 0) {
printf("方程无解\n");
} else if (a == 0 && b != 0) {
x = -c/b;
printf("方程只有一个解,x = %f\n", x);
} else {
delta = b*b - 4*a*c;
if (delta > 0) {
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
printf("方程有两个不相等的实根,x1 = %f,x2 = %f\n", x1, x2);
} else if (delta == 0) {
x = -b/(2*a);
printf("方程有两个相等的实根,x = %f\n", x);
} else {
realPart = -b/(2*a);
imagPart = sqrt(-delta)/(2*a);
printf("方程无实根,但有两个共轭复根,x1 = %f + %fi,x2 = %f - %fi\n", realPart, imagPart, realPart, imagPart);
}
}
return 0;
}
```
你可以直接复制上述代码到C语言环境中编译运行,输入a、b、c即可求解一元二次方程的根。
阅读全文