C++多个else的配对问题

来源:互联网 发布:宋朝士大夫 知乎 编辑:程序博客网 时间:2024/04/28 16:26
可能发生的一个小错误
int main(){    float a,b,c,disc,x1,x2,p,q,i;    scanf("%f%f%f",&a,&b,&c);    disc=b*b-4*a*c;    if(disc<0)         p=-b/(2*a);        q=(sqrt(disc))/(2*a);        x1=p+q*i;        x2=p-q*i;    else         if(disc==0)        x1=-b/(2*a);        x2=-b/(2*a);        else              x1=(sqrt(disc)-b)/(2*a);         x2=(-sqrt(disc)-b)/(2*a);    printf("x1=%0.3f x2=%0.3f\n",x1,x2);    return 0;}

从你的缩进来看你想让这后面的四个语句都是if之后 但其实只有第一个是 这种情况应该加大括号

if(disc<0)    {        p=-b/(2*a);        q=(sqrt(disc))/(2*a);        x1=p+q*i;        x2=p-q*i;    }



原创粉丝点击