ax2__bx__c=d 下滑线为输入的+或-号,求根,怎么不执行 if 语句?
大侠帮帮忙!!
#include <stdio.h>
#include <math.h>
main()
{
int a,b,c,d;
double dd,dt,d1,d2,d3,d4,d5,d6,d7,d8,dt1,dt2,dt3;
char f1,f2;
printf("A=");
scanf("%d",&a);
printf("f1= + or -");
scanf("%f",&f1);
printf("f2= + or -");
scanf("%f",&f2);
printf("B=");
scanf("%d",&b);
printf("C=");
scanf("%d",&c);
printf("D=");
scanf("%d",&d);
dd=b*b-4*a*(c-d);
dt=sqrt(b*b-4*a*(c-d));
dt1=sqrt(b*b-4*a*(-c-d));
dt2=sqrt((-b)*(-b)-4*a*(c-d));
dt3=sqrt((-b)*(-b)-4*a*(-c-d));
d1=(-b+dt)/(2*a);
d2=(-b-dt)/(2*a);
d3=(-b+dt1)/(2*a);
d4=(-b-dt1)/(2*a);
d5=(-b+dt2)/(2*a);
d6=(-b-dt2)/(2*a);
d7=(-b+dt3)/(2*a);
d8=(-b-dt3)/(2*a);
if (f1=='+' && f2=='+' && dd<0)
{ printf("________");
printf("no value!\n");
}
else if (f1=='+' && f2=='+' && dd==0)
{ printf("________");
printf("X1=X2=%f\n",d1);
}
else if (f1=='+' && f2=='+' && dd>0)
{
printf("X1=%f\n",d1);
printf("X2=%f\n",d2);
}
if (f1=='+' && f2=='-' && dt1<0)
{
printf("no value!\n");
}
else if (f1=='+' && f2=='-'&& dt1==0)
{
printf("X1=X2=%f\n",d3);
}
else if (f1=='+' && f2=='-' && dt1>0)
{
printf("X1=%f\n",d3);
printf("X2=%f\n",d4);
}
if (f1=='-' && f2=='+' && dt2<0)
{
printf("no value!\n");
}
else if (f1=='-' && f2=='+' && dt2==0)
{
printf("X1=X2=%f\n",d5);
}
else if (f1=='-' && f2=='+' && dt2>0)
{
printf("X1=%f\n",d5);
printf("X2=%f\n",d6);
}
if (f1=='-' && f2=='-' && dt3<0)
{
printf("no value!\n");
}
else if (f1=='-' && f2=='-' && dt3==0)
{
printf("X1=X2=%f\n",d7);
}
else if (f1=='-' && f2=='-' && dt3>0)
{
printf("X1=%f\n",d7);
printf("X2=%f\n",d8);
}
getchar();
}