求一元二次方程ax2+bx+c=0的根+abc键盘输入,b2-4acc语言

如题所述

以下是一个示例的 C 代码,用于计算一元二次方程 ax^2 + bx + c = 0 的根,并根据 b^2 - 4ac 的值来判断根的类型:

#include <stdio.h>#include <math.h>int main() {
float a, b, c;
float discriminant, root1, root2;

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

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

// 判断根的类型并计算根
if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);

printf("方程有两个实根:\n");
printf("根 1 = %.2f\n", root1);
printf("根 2 = %.2f\n", root2);
}
else if (discriminant == 0) {
root1 = -b / (2 * a);

printf("方程有一个实根:\n");
printf("根 = %.2f\n", root1);
}
else {
float realPart = -b / (2 * a);
float imaginaryPart = sqrt(-discriminant) / (2 * a);

printf("方程有两个虚根:\n");
printf("根 1 = %.2f + %.2fi\n", realPart, imaginaryPart);
printf("根 2 = %.2f - %.2fi\n", realPart, imaginaryPart);
}

return 0;}

在这个示例代码中,我们使用了 scanf() 函数从键盘输入方程的系数 a、b 和 c。然后,通过计算 discriminant = b^2 - 4ac 的值来确定方程的根的类型。

根据 discriminant 的值,我们得到以下情况:

    若 discriminant > 0,则方程有两个实根,通过 (-b ± √discriminant) / (2a) 计算根的值。

    若 discriminant = 0,则方程有一个实根,通过 -b / (2a) 计算根的值。

    若 discriminant < 0,则方程有两个虚根,通过 (-b ± √(-discriminant)i) / (2a) 计算根的值。

    最后,使用 printf() 函数将根的结果输出到屏幕上。请注意,以上代码中使用了 sqrt() 函数来计算平方根,需要包含头文件 math.h。另外,保留了两位小数的输出形式(%.2f)。

    希望这能帮助到你!如果你还有其他问题,请随时提问。

温馨提示:答案为网友推荐,仅供参考
相似回答