c++怎么总是提示说error C2181: illegal else without matching if

#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<time.h>
void Count(int a[ ] [4], int m, int b[],int c[])
{
int i,j,k=0,t=0;
for(i=0;i<=m-1;i++)
for(j=0;j<=3;j++)
if(a[i][j]%2==0)
b[k]=a[i][j];
k++;
else
c[t]=a[i][j];
t++;
if(!t)
cout<<"d数组数据个数为0!";
if(!k)
cout<<"无偶数!";
}
void main()
{int data[3][4], c[12]={0}, d[12]={0};
int i,j;
srand(unsigned(time));
for(i=0;i<=2;i++)
for(j=0;j<=3;j++){
data[i][j]=rand();
}
Count (data,3, c, d );
for(i=0;i<12;i++)
cout<<setw(8)<<c[i]<<"\t";
for(j=0;j<12;j++)
cout<<setw(8)<<d[j]<<"\t";
}

第1个回答  2013-11-08
if后面只能接一个语句,你这里有两个语句b[k]=a[i][j];
k++;
第2个回答  2013-11-08
11和12行应该在{}里if(a[i][j]%2==0){
b[k]=a[i][j];
k++;}
else ....你这样就是if(a[i][j]%2==0){
b[k]=a[i][j];}
k++;
else
第3个回答  2013-11-08
if(a[i][j]%2==0)
{/*加大括号*/
b[k]=a[i][j];
k++;
}
else本回答被网友采纳

c++怎么总是提示说error C2181: illegal else without matching if
if(){ } else{ } 都写上括号就好了

error C2181: illegal else without matching if错误
提示应该是说你的else没有与之匹配的if。错误在于你的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");}

#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 我到底错在哪...
你第三个else if 后面多了一个;把它删除即可

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

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

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

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

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

相似回答