低调123456 发表于 2018-7-23 16:34:54

else的用法错误


#include <stdio.h>
#include <math.h>
int main()
{
        double a,b,c,disc,x1,x2,p,q;
        scanf("%lf%lf%lf",&a,&b,&c);
        disc=b*b-4*a*c;
        if (disc<0);
        printf("This is a error");
        else
        {
                        p=-b/(2.0*a);
                q=sqrt(disc)/(2.0*a);
                x1=p+q;
                x2=p-q;
                printf("real roots\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
        }
        return 0;
}


报错显示:没有匹配 if 的非法 else
我把else改成了if (disc>=0)才成功运行的,不过不知道原本的代码哪里有问题。我用的是vs。


无符号整形 发表于 2018-7-23 16:40:09

#include <stdio.h>
#include <math.h>
int main()
{
      double a,b,c,disc,x1,x2,p,q;
      scanf("%lf%lf%lf",&a,&b,&c);
      disc=b*b-4*a*c;
      if (disc<0);
      printf("This is a error");
      else
      {
                        p=-b/(2.0*a);
                q=sqrt(disc)/(2.0*a);
                x1=p+q;
                x2=p-q;
                printf("real roots\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
      }
      return 0;
}

无符号整形 发表于 2018-7-23 16:41:10

问题很明显了吧?if语句都结束了,中间插进一个语句,else就被隔开了。{:10_257:}

BngThea 发表于 2018-7-23 16:41:52

把if那一行后面的分号去掉
页: [1]
查看完整版本: else的用法错误