使用c语言求一元二次方程的根 Description 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。 Input 输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。 Output 输出一行,表示方程的解。 若b2 = 4 * a * c,则两个实根相等,则输出形式为:x1=x2=...。 若b2 > 4 * a * c,则两个实根不等,则输出形式为:x1=...;x2 = ...,其中x1>x2。 若b2 < 4 * a * c,则有两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i,即x1的虚部系数大于等于x2的虚部系数,实部为0时不可省略。实部 = -b / (2*a), 虚部 = sqrt(4*a*c-b*b) / (2*a) 所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。
时间: 2024-01-22 19:19:18 浏览: 86
以下是使用 C 语言编写的程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, delta, x1, x2, realPart, imagPart;
// 输入系数
scanf("%lf %lf %lf", &a, &b, &c);
// 计算 delta
delta = b * b - 4 * a * c;
if (delta > 0) {
// 两个实根不等
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("x1=%.5lf;x2=%.5lf", x1, x2);
} else if (delta == 0) {
// 两个实根相等
x1 = -b / (2 * a);
printf("x1=x2=%.5lf", x1);
} else {
// 两个虚根
realPart = -b / (2 * a);
imagPart = sqrt(-delta) / (2 * a);
printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi", realPart, imagPart, realPart, imagPart);
}
return 0;
}
```
程序中首先读入输入的系数,然后根据 delta 的值进行分类讨论,分别计算出 x1 和 x2 的值,并输出结果。注意输出格式要求精确到小数点后 5 位,并且输出时没有空格。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)