编写c语言程序,由键盘输入一元二次方程 02+6xtc=0a*0 的a.b,c的值,求方程的解
时间: 2023-05-26 18:07:47 浏览: 87
C语言实验-有3个整数a,b,c,由键盘输入,编写程序输出其中绝对值最大(或最小)的数。
5星 · 资源好评率100%
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double delta, x1, x2;
printf("请输入一元二次方程的系数:\n");
scanf("%lf %lf %lf", &a, &b, &c);
delta = b * b - 4 * a * c;//计算判别式
if(delta < 0) {
printf("方程无实根。\n");
} else if(delta == 0) {
x1 = x2 = -b / (2 * a);//计算唯一实根
printf("方程有唯一实根:x1 = x2 = %.2lf\n", x1);
} else {
x1 = (-b + sqrt(delta)) / (2 * a);//计算两个实根
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个实根:x1 = %.2lf, x2 = %.2lf\n", x1, x2);
}
return 0;
}
```
说明:
1. 可以使用`double`类型存储系数和解,以避免精度问题。
2. 判别式小于0,则方程无实根,输出提示信息即可。
3. 判别式等于0,则方程有唯一实根,直接求解并输出。
4. 判别式大于0,则方程有两个实根,分别求解并输出。对于$x_1$和$x_2$,我们保留两位小数输出,使用`%.2lf`的格式控制符。
阅读全文