用c++编程求解改进的一元二次方程的根
时间: 2023-08-30 07:10:11 浏览: 56
下面是一个C语言程序,用于求解改进的一元二次方程的根:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2, realPart, imagPart;
printf("请输入一元二次方程的系数:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
delta = b * b - 4 * a * c;
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不相等的实根:x1 = %.2lf, x2 = %.2lf\n", x1, x2);
}
else if (delta == 0) {
x1 = -b / (2 * a);
printf("方程有一个实根:x1 = %.2lf\n", x1);
}
else {
realPart = -b / (2 * a);
imagPart = sqrt(-delta) / (2 * a);
printf("方程有两个共轭复根:x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi\n", realPart, imagPart, realPart, imagPart);
}
return 0;
}
```
该程序首先要求用户输入一元二次方程的系数,然后根据判别式的值分别计算实根和复根,并按照不同情况输出根的值。注意,当判别式小于零时,程序需要计算出两个共轭复根,即实部相同而虚部相反的两个根。