一个简单的一元二次方程求解 输入abc的那种有一组数据10 0 0要求输出x1=x2=0.000000可是总是输出x1=0.000000 x2=0.000000找了半天也没找到问题出在哪
求高手帮下忙
以下是代码
#include<stdio.h>
#include<math.h>
int main()
{ int a,b,c;
double d,x1,x2,x;
scanf("%d %d %d",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
{printf("Input error!\n");}
else if(a==0)
{if(b==0)
{printf("Input error!\n");}
else
{x=-(c/b); printf("x=%.6lf\n",x);}}
else if(d=0)
{x=(-b)/(2*a);
printf("x1=x2=%.6lf\n",x);}
else
{ x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.6lf\nx2=%.6lf\n",x1,x2);}
return 0;
}
万分感谢
求高手帮下忙
以下是代码
#include<stdio.h>
#include<math.h>
int main()
{ int a,b,c;
double d,x1,x2,x;
scanf("%d %d %d",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
{printf("Input error!\n");}
else if(a==0)
{if(b==0)
{printf("Input error!\n");}
else
{x=-(c/b); printf("x=%.6lf\n",x);}}
else if(d=0)
{x=(-b)/(2*a);
printf("x1=x2=%.6lf\n",x);}
else
{ x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.6lf\nx2=%.6lf\n",x1,x2);}
return 0;
}
万分感谢