c/c++问题else if 没有配对的if是为什么

#include<stdio.h>intmain(){chara,b,c;scanf("%c",&a);if(a!='A'&&a!='Z')b=a-1;c=a+1;pri... #include<stdio.h>
int main()
{char a,b,c;
scanf("%c",&a);
if(a!='A'&&a!='Z')
b=a-1;c=a+1;
printf("%c%c",b,c);
else if(a=='A')
printf("没有前面的字母");
else
printf("没有后面的字母");
return 0;
}
展开
 我来答
童年的馒头dwj
推荐于2017-09-20
知道答主
回答量:13
采纳率:0%
帮助的人:6.5万
展开全部
#include<stdio.h>
int main()
{
char a,b,c;
scanf("%c",&a);
if(a!='A'&&a!='Z')
{
b=a-1;c=a+1;
printf("%c%c",b,c);
}
else if(a=='A')
{
printf("没有前面的字母");
}
else
printf("没有后面的字母");
return 0;
}
{}里面是一个语句块,是if条件判断的执行的命令 如果if后面没有{},则因条件成立执行的命令只有if下面一句。而你if与else之间有两句。printf("%c%c",b,c);不止在if成立的条件下执行,它不属于if的管辖。所以到else时,检测到上一句不是if,也就是没有配对
870177103
2013-01-11 · TA获得超过522个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:345万
展开全部
很明显第一个if后少了"{"和第一个else前少了"}"
编译器会把b=a-1;当作第一个if的内语句,后面的都是第一if之外的了,然后它又发现了一个else,它就果断告诉你第一它发现的else前面没有和他配对的if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2013-01-11 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6506万
展开全部
把b=a-1;c=a+1;
printf("%c%c",b,c);
用一对{}括起来就配对了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唐竹夏
2013-01-11 · TA获得超过916个赞
知道小有建树答主
回答量:447
采纳率:0%
帮助的人:349万
展开全部
if(a=='A')
printf("没有前面的字母");
else
printf("没有后面的字母");
这是一个if。。。else语句
追问
那什么时候才可以用ELSE..IF啊。。
追答
else if是连在一起用的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lichuru1320
推荐于2017-09-01 · TA获得超过117个赞
知道答主
回答量:106
采纳率:100%
帮助的人:50.7万
展开全部
#include<stdio.h>
int main()
{
char a,b,c;
scanf("%c",&a);
if(a!='A'&&a!='Z')
{
b=a-1;
c=a+1;
printf("%c%c",b,c);
}else if(a=='A')
{
printf("没有前面的字母");
}
else
{
printf("没有后面的字母");
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式