📅  最后修改于: 2023-12-03 15:06:20.156000             🧑  作者: Mango
二次方程式求根是基础的代数学问题,通过C程序实现可以方便地求解。本文将介绍二次方程式求根的C程序的实现方法、注意事项以及示例代码。
二次方程式的一般形式为:$ax^2+bx+c=0$,其中$a\neq0$。使用求根公式可以得到该方程的两个根:
$$x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
因此,我们可以通过输入参数$a, b, c$,计算出$x_1$和$x_2$的值,进而输出结果。
二次方程式存在两种不同的解,唯一的区别在于根号下的判别式的正负性。因此,在C程序中,需要先计算出$b^2-4ac$,并进行判断:
由于计算中可能涉及到浮点数,因此建议使用 double
类型,以保证精度。
当输入的参数 $a=0$ 时,方程不在二次范畴内,程序需要进行错误处理。
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
printf("请输入二次方程系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
if (a == 0) { // a不能为0
printf("这不是一个二次方程!");
return 0;
}
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("此方程无实数解!");
return 0;
}
else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("该二次方程有两个相等的实数解,x1 = x2 = %.2lf", x1);
}
else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("该二次方程的两个实数解分别为:\n");
printf("x1 = %.2lf \n", x1);
printf("x2 = %.2lf \n", x2);
}
return 0;
}
double a, b, c, delta, x1, x2;
printf("请输入二次方程系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
if (a == 0) { // a不能为0
printf("这不是一个二次方程!");
return 0;
}
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("此方程无实数解!");
return 0;
}
else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("该二次方程有两个相等的实数解,x1 = x2 = %.2lf", x1);
}
else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("该二次方程的两个实数解分别为:\n");
printf("x1 = %.2lf \n", x1);
printf("x2 = %.2lf \n", x2);
}