要想使用c语言编写这个实例,就需要知道数学上的公式。
一元二次方程表达式为:a * x * x + bx + c = 0(其中,a ≠ 0)
根的判别式为:Δ = b * b - 4 * a * c;
求根公式为:
代码思想:
手动输入三个系数,分别代表二次项系数、一次项系数、常数项;
判断输入的二次项系数是否为0,如果为0,提示“输入的第一个值不合法,请重新输入!”;
如果二次项系数不为0,利用根的判别式,计算一元二次方程是否有根;
如果判别式 Δ >= 0 ,代表方程有两个根,输出根;
如果 Δ < 0 ,提示“方程无根”。
-
#include <>
-
// 使用开根号 sqrt(d) 函数时,需要添加此头文件
-
#include <>
-
-
int main()
-
{
-
// 求一元二次方程的根
-
// 代码思想:
-
// 手动输入三个系数,分别代表二次项系数、一次项系数、常数项;
-
// 判断输入的二次项系数是否为0,如果为0,提示“输入的第一个值不合法,请重新输入!”
-
// 如果二次项系数不为0,利用根的判别式,计算一元二次方程是否有根;
-
// 如果判别式 Δ >= 0 ,代表方程有两个根,输出根
-
// 如果 Δ < 0 ,提示“方程无根”。
-
-
float a , b , c, d, x1, x2;
-
-
printf("请依次输入三个系数: ");
-
scanf("%f %f %f", &a,&b,&c);
-
-
if(a != 0)
-
{
-
d = b * b - 4 * a * c; // 根的判别式
-
if(d >= 0)
-
{
-
x1 = ((-b + sqrt(d)) / (2 * a)); // 求根公式
-
x2 = ((-b - sqrt(d)) / (2 * a));
-
-
printf("x1 = %.2f;x2 = %.2f", x1, x2);
-
}
-
else
-
{
-
printf("方程无根");
-
}
-
}
-
else
-
{
-
printf("输入的第一个值不合法,请重新输入!");
-
}
-
-
-
return 0;
-
}
例如1:系数 a = 0, b = 2, c = 1 时,运行结果如下
例如2:系数 a = 1, b = 2, c = 1 时,运行结果如下
例如3:系数 a = 1, b = 3, c = 2 时,运行结果如下
例如4:系数 a = 1, b = 0, c = 1 时,运行结果如下