#include<stdio.h>
#include<math.h>
double delta(double,double,double);
int main()
{
double a,b,c,x1,x2;
printf("请输入系数a,b,c\n");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0)
{
printf("不是一元二次方程");
}
else if(delta(a,b,c)<0)
{
printf("无实数根");
}
else if(delta(a,b,c)==0)
{
double x;
x=-b/2/a;
printf("两相等根为%lf",&x);
}
else if(delta(a,b,c)>0)
{
x1=-b/(2*a)+sqrt(delta(a,b,c))/(2*a);
x2=-b/(2*a)-sqrt(delta(a,b,c))/(2*a);
printf("两实数根为%lf %lf",&x1,&x2);
}
return 0;
}
double delta(double a,double b,double c)
{
double d;
d=b*b-4*a*c;
return d;
}
已采纳
为什么这个c语言一元二次方程根的程序当两实数根时两根为零?
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
- 分享
- 邀请回答