完善程序实现当输入a,b,c三个整数的时候,判断一元二次方程ax²+bx+c=0的根的情况
时间: 2024-03-21 16:40:04 浏览: 70
好的,可以使用以下程序实现:
```
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, c;
double delta, x1, x2;
printf("请输入三个整数a, b, c:");
scanf("%d %d %d", &a, &b, &c);
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
{
double realPart = -b / (2 * a);
double imagPart = sqrt(-delta) / (2 * a);
printf("方程无实数根,共轭复数根为:%.2lf+%.2lfi和%.2lf-%.2lfi\n", realPart, imagPart, realPart, imagPart);
}
return 0;
}
```
程序中使用了 `delta` 变量表示判别式,然后根据判别式的大小进行分类讨论:当 `delta > 0` 时,方程有两个不相等的实数根;当 `delta == 0` 时,方程有唯一实数根;当 `delta < 0` 时,方程无实数根,此时输出共轭复数根,其中实部为 `-b / (2 * a)`,虚部为 `sqrt(-delta) / (2 * a)`。
阅读全文