c语言一元二次方程编程怎么写

时间:2025-03-05 15:22:53 明星趣事

```c

include

include

int main() {

double a, b, c, delta, x1, x2;

// 输入系数

printf("请输入一元二次方程的三个系数a, b, c: ");

scanf("%lf %lf %lf", &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("该一元二次方程有两个实数根: x1 = %.2lf, x2 = %.2lf\n", x1, x2);

} else if (delta == 0) {

// 一个重根

x1 = x2 = -b / (2 * a);

printf("该一元二次方程有一个重根: x1 = x2 = %.2lf\n", x1);

} else {

// 两个共轭复数根

double realPart = -b / (2 * a);

double imaginaryPart = sqrt(-delta) / (2 * a);

printf("该一元二次方程有两个共轭复数根: x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);

}

return 0;

}

```

代码说明:

输入部分

使用 `printf` 提示用户输入三个系数 `a`、`b` 和 `c`。

使用 `scanf` 读取用户输入的值。

计算判别式

计算判别式 `delta = b^2 - 4ac`。

根据判别式的值求解方程

如果 `delta > 0`,方程有两个不同的实数根,计算并输出这两个根。

如果 `delta == 0`,方程有一个重根,计算并输出这个重根。

如果 `delta < 0`,方程有两个共轭复数根,计算并输出这两个复数根。

注意事项:

确保输入的系数 `a` 不为零,因为当 `a == 0` 时,方程不再是二次方程。

使用 `sqrt` 函数计算平方根时,需要包含 `` 头文件。

输出结果时,使用 `%.2lf` 格式化字符串控制输出的小数点后两位。