#include #include
int main()
{
int a,b,c; double d,e,f;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
printf("c=");
scanf("%d",&c);
d=b*b-4*a*c;
if(d<0)
printf("无解");
else {
e=(-b+sqrt(d))/(2*a);
f=(-b-sqrt(d))/(2*a);
if(d=0)
printf("x1=x2=%f",e);
else
printf("x1=%f\tx2=%f",e,f);
}
}
if (d==0)
{
x1=(-b)/(2*a);
printf("x1=%f\n",x1);
}
if (d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);}
}
这个试试
楼上正确。
if(d=0)——执行完d=0,d就真的等于0,不会再执行if (d>0) 了
注意“=”是赋值符号,“==”才是判断
%lf