为什么在编译时会出现没有匹配 if 的非法 else。

。#include<iostream>
using namespace std;
int main()

{ int a;
cout<<"key a number:\n";
cin>>a;
if((a%4==0&&a%100!=0)||(a%400==0));
cout<<a<<"这年是闰年\n";
else

cout<<a<<"这年不是闰年\n";
return 0;
}

if((a%4==0&&a%100!=0)||(a%400==0));//这里多了一个;号,去掉就可以了

#include "StdAfx.h"
#include<iostream>
using namespace std;
int main()

{ int a;
cout<<"key a number:\n";
cin>>a;
if((a%4==0&&a%100!=0)||(a%400==0))
cout<<a<<"这年是闰年\n";
else
cout<<a<<"这年不是闰年\n";
return 0;
}

用这个再试试
温馨提示:内容为网友见解,仅供参考
无其他回答

为什么在编译时会出现没有匹配 if 的非法 else。
if((a%4==0&&a%100!=0)||(a%400==0));\/\/这里多了一个;号,去掉就可以了 include "StdAfx.h"include<iostream> using namespace std;int main(){ int a;cout<<"key a number:\\n";cin>>a;if((a%4==0&&a%100!=0)||(a%400==0))cout<<a<<"这年是闰年\\n";else cou...

error C2181: 没有匹配 if 的非法 else C语言编程问题!!
帮你改了下 你的程序出现的问题主要是由于代码的缩进及书写不够规范导致的,这是初学者经常犯的错误,一定要养成一个良好的编码习惯,例如变量在定义的时候一定要初始化(虽然不进行手动初始化也不会出错,但手动进行初始化是个好的习惯),每行只写一句代码,代码块加上{} 比如你的if语句虽然只有一句b...

C语音 用F7编译后 一直有错误:没有匹配 if 的非法 else
你的if ( a == b );后面多了一个分号;它把if语句给结束了,导致后面的else没有匹配到相应的if条件。这种错误是教科书级的,刚学习c语言的时候老师就举过这样的例子。

为什么程序老是报错“else没有匹配的if”
if后面多了个分号,这样编译器就认为if判断结束,这样的话else就和if无法匹配了

c语言程序编译时提示else没有匹配if,麻烦高手指点
这个程序的错误不是else匹配if的问题,而是你在#define语句的结尾加了分号。#define Yes 1

运行窗体是提示编译错误 Else 没有if
因为你的IF后面的Then后面还有语句,这表示你是单行IF,应该把If后面的Then后面的UserForm1.Hide换行,就ok了。

c\/c++问题else if 没有配对的if是为什么
else printf("没有后面的字母");return 0;} {}里面是一个语句块,是if条件判断的执行的命令 如果if后面没有{},则因条件成立执行的命令只有if下面一句。而你if与else之间有两句。printf("%c%c",b,c);不止在if成立的条件下执行,它不属于if的管辖。所以到else时,检测到上一句不是if,也就是...

ElseIf 语句上边 运行时 总提示“ 编译错误 Else 没有 If ”
你这个结构我都看不出来你的elseif和哪个if对应的 有这个提示 说明你的if和elseif没有完全对应

编译时出现expected unqualified-id before'else'应该怎么解决_百度...
else if之前没有与之匹配的if。对于if语句块中包含多行语句的情况应该用大括号括起来。if(cond1){ expr1; expr2; expr3;}else if(cond2){ expr4; expr5;}学会缩进代码,养成良好的代码习惯。

C++中出现illegal else without matching if是为什么
在if(n==0)后面不应该写分号,写了之后就表示这个选择语句已经终结了,所以才会出现illegal else without matching if,意思就是不合法的else,没有相对应的if与之相对应,如果使用else,前面一定会有对应的if才对

相似回答