C语言 条件语句 else-if形式
#include
#include
int main(void)
{
float a,b,c,disc,p,q;
printf("Please enter a b c:");
scanf("%f,%f,%f",&a,&b,&c);
if(a<0)
printf("不是二次方程!\n");
disc = pow(b,2)-4*a*c;
p = -b/(2*a);
q = sqrt(fabs(disc))/(2*a);
if(disc=0)
printf("x1=x2=%f\n",p);
else if(disc>0)
printf("x1=%f,x2=%f\n",p+q,p-q);
else(disc<0);
printf("x1=%fi,x2=%fi",p+q,p-q);
return 0;
}
为什么在Code blocks和devc++上else(disc<0)后面都要加分号才能够正常运行?
格式化一些就能看明白了,else后面缺个if
if (disc == 0) //这里缺个=
printf("x1=x2=%f\n", p);
else if (disc > 0)
printf("x1=%f,x2=%f\n", p + q, p - q);
else
(disc < 0);
你这代码判断disc的值, 最后那个判断条件(disc < 0)不需要加
if(disc=0)改成if(disc==0)