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

程序如下:

#include <iostream.h>

void main()
{
int a;
double b;
cout<<"请输入您的购物金额:";
cin>>a;

if(a/1000>=0)

if(a/1000<=4)
switch(a/1000){
case 0:b=1.0;break;
case 1:b=0.9;break;
case 2:b=0.8;break;
case 3:B=0.7;break;
case 4:B=0.6;break;
}
cout<<"您需支付的金额为:"<<a*b;

else
b=0.5;
cout<<"您需支付的金额为:"<<a*b;

else
cout<<"请输入正确的金额!";
}

为什么不行?麻烦帮修改下,谢谢了!

你编码从来不加括号么?
注意一下编码规范,
if(){

} else{

}
都写上括号就好了
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-18
#include <iostream.h>

void main()
{
int a;
double b;
cout<<"请输入您的购物金额:";
cin>>a;

if(a/1000>=0)
{
if(a/1000<=4){
switch(a/1000){
case 0:b=1.0;break;
case 1:b=0.9;break;
case 2:b=0.8;break;
case 3:B=0.7;break;
case 4:B=0.6;break;
}
cout<<"您需支付的金额为:"<<a*b;
}
else
b=0.5;
cout<<"您需支付的金额为:"<<a*b;
}
else
cout<<"请输入正确的金额!";
}

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才对

相似回答
大家正在搜