百姓心情网-为你提供各类经典名言与文案句子

c语言解一元二次方程

在C语言中,求解一元二次方程 \(ax^2 + bx + c = 0\) 的步骤如下:

引入数学库 :首先需要引入数学库,以便使用平方根函数 `sqrt`。

计算判别式:

计算判别式 \(\Delta = b^2 - 4ac\)。

判断判别式的值

如果 \(\Delta > 0\),方程有两个不相等的实数根。

如果 \(\Delta = 0\),方程有两个相等的实数根(一个重根)。

如果 \(\Delta < 0\),方程无实数根。

计算根

如果 \(\Delta \geq 0\),使用公式 \(x = \frac{-b \pm \sqrt{\Delta}}{2a}\) 计算两个根。

```c

include

include

int main() {

double a, b, c, delta, root1, root2;

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

scanf("%lf %lf %lf", &a, &b, &c);

if (a == 0) {

if (b == 0) {

if (c == 0) {

printf("x可以是任意数\n");

} else {

printf("方程不成立\n");

}

} else {

printf("方程是一元一次方程, x = %lf\n", -c / b);

}

} else {

delta = b * b - 4 * a * c;

if (delta > 0) {

root1 = (-b + sqrt(delta)) / (2 * a);

root2 = (-b - sqrt(delta)) / (2 * a);

printf("方程有两个不相等的实数根: %.2lf 和 %.2lf\n", root1, root2);

} else if (delta == 0) {

root1 = root2 = -b / (2 * a);

printf("方程有两个相等的实数根: x1 = x2 = %.2lf\n", root1);

} else {

printf("方程无实数根\n");

}

}

return 0;

}

```

代码说明:

输入系数:

程序首先提示用户输入一元二次方程的系数 \(a\)、\(b\) 和 \(c\)。

判断是否为二次方程:

如果 \(a = 0\) 且 \(b \neq 0\),则方程退化为一元一次方程,直接计算 \(x = -\frac{c}{b}\)。

计算判别式:

计算 \(\Delta = b^2 - 4ac\)。

判断判别式的值

如果 \(\Delta > 0\),计算两个不相等的实数根 \(x_1\) 和 \(x_2\)。

如果 \(\Delta = 0\),计算两个相等的实数根 \(x_1 = x_2 = -\frac{b}{2a}\)。

如果 \(\Delta < 0\),输出“方程无实数根”。

这个程序涵盖了所有可能的情况,并能够正确计算一元二次方程的解。

上一篇上一篇:3906三极管参数

下一篇下一篇:没有了