C语言求解一元二次方程。 **输入格式要求:"%lf %lf %lf" 提示信息:"请分别输入二次项、一次项、常数项系数a,b,c:" **输出格式要求:"方程%.1lfx^2" "%.1lfx" "%.1lf=0" "无解.\n" "有两个根:x1=%.1lf,x2=%.1lf\n" "有一个根:x=%.1lf\n" 程序示例运行1如下: 请分别输入二次项、一次项、常数项系数a,b,c:1 2 1 方程1.0x^2+2.0x+1.0=0有一个根:x=-1.0 程序示例运行2如下: 请分别输入二次项、一次项、常数项系数a,b,c:1 5 6 方程1.0x^2+5.0x+6.0=0有两个根:x1=-2.0,x2=-3.0 程序示例运行3如下: 请分别输入二次项、一次项、常数项系数a,b,c:1 2 3 方程1.0x^2+2.0x+3.0=0无解.
时间: 2024-03-12 18:50:27 浏览: 122
C语言程序设计-程序举例求一元二次方程根.pptx
好的,这是一个比较基础的C语言问题,我来给您提供代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c; // 二次项、一次项、常数项系数
printf("请分别输入二次项、一次项、常数项系数a,b,c:");
scanf("%lf %lf %lf", &a, &b, &c);
// 输出方程
printf("方程%.1lfx^2+%.1lfx+%.1lf=0", a, b, c);
double delta = b * b - 4 * a * c; // 计算判别式
if (delta < 0) {
printf("无解.\n");
} else if (delta == 0) {
double x = -b / (2 * a);
printf("有一个根:x=%.1lf\n", x);
} else {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("有两个根:x1=%.1lf,x2=%.1lf\n", x1, x2);
}
return 0;
}
```
这个程序会根据用户输入的三个系数,计算出一元二次方程的解,并输出结果。请注意,如果判别式小于0,那么方程无解;如果判别式等于0,那么方程有一个根;如果判别式大于0,那么方程有两个根。
运行示例1:
```
请分别输入二次项、一次项、常数项系数a,b,c:1 2 1
方程1.0x^2+2.0x+1.0=0有一个根:x=-1.0
```
运行示例2:
```
请分别输入二次项、一次项、常数项系数a,b,c:1 5 6
方程1.0x^2+5.0x+6.0=0有两个根:x1=-2.0,x2=-3.0
```
运行示例3:
```
请分别输入二次项、一次项、常数项系数a,b,c:1 2 3
方程1.0x^2+2.0x+3.0=0无解.
```
阅读全文