C++出现问题 error C2181: illegal else without matching if

#include <stdio.h>
void main()
{ float a,b,x;
int d,e;
char c;
scanf("%f%c%f",&a,&c,&b);

if(c=='+') x=(a+b);
else if(c=='-') x=(a-b);
else if(c=='*') x=(a*b);
else if(c=='/') x=(a/b);
else if(c=='%')
d=(int)a,e=(int)b;
x=(d%e);
else printf("errors!\n");
printf("%f%c%f=%f\n",a,c,b,x);
}

1、illegal else without matching if
意思是if 和 else不匹配,一个if配一个else。

2、例如:
if(x>=1)
y=500;
→else if(x>=0)
y=0;
else y=-500;
去掉y=500;前的 { 和else y=-500;下一行的}就可以了,
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-18
要加花括号……
else if(c=='%')
{
d=(int)a,e=(int)b;
x=(d%e);
}
else printf("errors!\n");本回答被提问者采纳

C++出现error C2181: illegal else without matching if
你的 C 语言源程序中有 6 个 if 语句,但是 else 语句却只有 4 个。C 语言编译器当然会出现 if 和 else 不匹配的提示信息了。至于说具体的详细源代码,到底是错在了那里,我也没有很多的时间帮你调试。这个就只能够靠你自己亲自上机在编程环境下面通过设置单步跟踪、以及相应的断点来进行调试了。

error C2181: illegal else without matching if
else { \/\/加括号 printf("error\\n");} \/\/加括号 } if后面如果只是只执行一句可以不加括号,然后跟着写else;但是你后面执行多句话,那么编译器会将你的代码看作为:if(b*b-4*a*c>=0){ d= sqrt(b*b-4*a*c);} x1= (-b+d)\/(2*a);x2= (-b-d)\/(2*a);else ...那...

error C2181: illegal else without matching if
if子句需要加花括号,你原代码里的if和else没办法匹配。

error C2181: illegal else without matching if
} else if(0<=t&&t<1){ p=0;j=0;i=n*(5\/100);n=n+i;} printf("B%f",p);printf("C%f",j);printf("D%f",i);printf("E%f",n);}

...error C2181: illegal else without matching if
else printf("z=12.8*y",&z);break;\/\/\/?是输出地址吗? case 3: if(

...error C2181: illegal else without matching if
if(year%4==0&&year%100!=0||year%100==0);if在;的时候就已经结束了。所以下面的else没有相应的if匹配。建议修改为 if(year%4==0&&year%100!=0||year%100==0){printf("days=29"); }else { printf("days=28");}

error C2181: illegal else without matching if错误
提示应该是说你的else没有与之匹配的if。错误在于你的if表达式后出现的分号“;”,去掉它

...error C2181: illegal else without matching if 我到底错在哪...
你第三个else if 后面多了一个;把它删除即可

#C语言中的问题# error C2181: illegal else without matching if
错误提示为:else与if不匹配 判断if(b*b-4*a*c>0)时多加一个分号“;”表示一个语句了,后面的else成独立的了 所以说else不匹配if

error C2181: illegal else without matching if 执行 cl.exe 时出...
include <stdio.h>#include <math.h>int main(void){int a = 1;int b = 2;int c = 1;int delta;delta = b*b - 4 * a*c;float x1, x2;x1 = (-b*b + sqrt(delta)) \/ (2 * a), x2 = (b*b - sqrt(delta)) \/ (2 * a);if (delta > 0){printf("该函数有两...

相似回答