error C2181: illegal else without matching if 请高手帮忙解决一下 刚学c不懂啊

#include"stdio.h"
void main()
{
int a;
scanf("%d",a);
if((a%4==0 && a%100!=0) ||a%400==0)
printf("%d\n",a);
printf("是闰年");
else if (!((a%4==0 && a%100!=0) ||a%400==0))
printf("%d\n",a);
printf("不是闰年");
}

第1个回答  推荐于2018-03-05
else if前面没有对应的if, if完了后,只执行后面一个语句,所以对于条件,if((a%4==0 && a%100!=0) ||a%400==0),只执行printf("%d\n",a);就完事了。加上大括号才能作用多条语句,改为如下:

#include"stdio.h"
void main()
{
int a;
scanf("%d",a);
if((a%4==0 && a%100!=0) ||a%400==0)
{
printf("%d\n",a);
printf("是闰年");
}
else if (!((a%4==0 && a%100!=0) ||a%400==0))
{
printf("%d\n",a);
printf("不是闰年");
}
}本回答被提问者和网友采纳

error C2181: illegal else without matching if 请高手帮忙解决一下...
else if前面没有对应的if, if完了后,只执行后面一个语句,所以对于条件,if((a%4==0 && a%100!=0) ||a%400==0),只执行printf("%d\\n",a);就完事了。加上大括号才能作用多条语句,改为如下:include"stdio.h"void main(){ int a;scanf("%d",a);if((a%4==0 && a%100!=0)...

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

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

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
void main(){ double a;printf("请输入您的价格");scanf("%f",&a);if(a<200) printf("%f",a);else if(a>=200&&a<400) printf("%f",a);else if(a>=400&&a<600){ a=a*0.9;printf("%f",a);} else if(a>=600&&a<1000){ a=a*0.8;printf("%f",a);} else if(a>=...

#C语言中的问题# error C2181: illegal else without matching if
这个后面带分号了 因此这句就独立完成了一句 与下面你的else if 就没关系了··

...error C2181: illegal else without matching if 么意思? 谢谢_百度...
检查下你写的if~else语句,你的语句有问题!你是写的嵌套吧?

#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这个错误,到底是什 ...
使得这条if语句与同它匹配的else语句之间多了一条语句:“max=abs(a[i]-a[j]);”。这样就不符合C语言语法了,所以编译器报错说:else没有与之对应的if(因为中间隔了一条语句)。即便if或else后只有一条语句,也用{}扩起来,是一个好的编程习惯。这样容易发现错误。

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

相似回答