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。
#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就被隔开了。{:10_257:} 把if那一行后面的分号去掉
页:
[1]