请用c语言写以下程序:求解一元二次方程。 **输入格式要求:"%lf %lf %lf" 提示信息:"请分别输入二次项、一次项、常数项系数a,b,c:" **输出格式要求:"方程%.1lfx^2" "%.1lfx" "%.1lf=0" "无解.\n" "有两个根:x1=%.1lf,x2=%.1lf\n" "有一个根:x=%.1lf\n"
时间: 2023-07-02 16:22:20 浏览: 136
好的,以下是代码实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
printf("请分别输入二次项、一次项、常数项系数a,b,c:");
scanf("%lf %lf %lf", &a, &b, &c);
double delta = b * b - 4 * a * c;
if (delta < 0) {
printf("方程%.1lfx^2+%.1lfx+%.1lf=0无解.\n", a, b, c);
} else if (delta == 0) {
double x = -b / (2 * a);
printf("方程%.1lfx^2+%.1lfx+%.1lf=0有一个根:x=%.1lf\n", a, b, c, x);
} else {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程%.1lfx^2+%.1lfx+%.1lf=0有两个根:x1=%.1lf,x2=%.1lf\n", a, b, c, x1, x2);
}
return 0;
}
```
程序中先读入二次项、一次项、常数项系数,然后根据公式计算出判别式 `delta`。根据 `delta` 的值输出不同的结果,如果 `delta` 小于 0,则方程无解;如果 `delta` 等于 0,则方程有一个根;否则方程有两个根。
阅读全文