#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,disc,x1,x2,re,im;
scanf("%f,%f,%f",&a,&b,&c);
if(fabs(a)<=1e-6&&fabs(b)<=1e-6&&fabs(c)<=1e-6)
printf("Input error\n");
else
if(fabs(a)<=1e-6)
x1=-c/b;
printf("x=%8.4f",x1);
else
disc=bb-4ac;
if(disc>=1e-6)
x1=(-b+sqrt(disc))/(2a);
x2=(-b-sqrt(disc))/(2a);
if(x1==x2)
printf("x1=x2=%8.4f\n",x1);
else
printf("x1=%8.4f\nx2=%8.4f\n",x1,x2);
else{
re=-b/(2a);
im=sqrt(-disc)/(2*a);
printf("x1=%8.4f+%8.4fi\nx2=%8.4f-%8.4f\n",re,im,re,im);
}
return 0;
}
[Error] 'else' without a previous 'if'
这是为什么呢?
很多花括号没打
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,disc,x1,x2,re,im;
scanf("%f,%f,%f",&a,&b,&c);
if(fabs(a)<=1e-6&&fabs(b)<=1e-6&&fabs(c)<=1e-6)
printf("Input error\n");
else{
if(fabs(a)<=1e-6){
x1=-c/b;
printf("x=%8.4f",x1);
}
else{
disc=b*b-4*a*c;
if(disc>=1e-6){
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
if(x1==x2)
printf("x1=x2=%8.4f\n",x1);
else
printf("x1=%8.4f\nx2=%8.4f\n",x1,x2);
}
else{
re=-b/(2*a);
im=sqrt(-disc)/(2*a);
printf("x1=%8.4f+%8.4fi\nx2=%8.4f-%8.4f\n",re,im,re,im);
}
}
}
return 0;
}
请用代码快的方式贴出,报错说你的else没有对应匹配的if,检查逻辑,看看你的最后一个else适合哪个if匹配的?应该是没有写对,没有匹配到if。两个else连一起同级是不行