引言
一元二次方程一般式为:aX^2+bX+c=0(a≠0), 它的根很好求,求根公式为x=,其中有个重要的判别式Δ。
当Δ=(Δ>=0)时,方程有两个实数根;
当Δ=(Δ < 0)时,方程没有实数根。
思考
要想正确得出一元二次方程的实数根,先要确定二次项系数a的值不能为零,再确定判别式Δ的值大于或等于0。
求根公式中有开方计算,头文件中就要有math.h,可以调用开方函数sqrt()
另外,各系数可能是小数。
代码
/*********************************************************************
程序名: 求一元二次方程的两根
版权: 24-05-09 AChenXunmeng
作者: AChen
日期: 2024-05-08 18:05
说明:希望对大家有所帮助
*********************************************************************/
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, d;
double x1, x2;
printf("请输入一元二次一般式方程的系数\n");
scanf("%lf %lf %lf", &a, &b, &c);
if (a == 0)
printf("输入错误,a不能等于0");
else
{
d = b * b - 4 * a * c;
if (d >= 0)
{
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("\n%.0lfx^2+%.0lfx+%.0lf=0的两解为:\nx1=%.2lf,x2=%.2lf\n", a, b, c, x1, x2);
}
else
printf("\n%.0lfx^2+%.0lfx+%.0lf=0没有实数根:\n", a, b, c);
}
return 0;
}
结果如下:
总结
编写时要考虑周全,否则可能会得不到想要的结果。
%.0lf一般输出整数形式,二般输出两位小数。
请大家按时吃饭,按时锻炼,笑口常开,好运自然来haha。
By ChenXunmeng
24-05-08 19:19