将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。程序如下:

#include<iostream>usingnamespacestd;intmain(){charc;while((c=getchar())!=′\n′){if((c>... #include <iostream>
using namespace std;
int main( )
{char c;
while ((c=getchar( ))!=′\n′)
{if((c>=′a′ && c<=′z′) || (c>=′A′ && c<=′Z′))
{c=c+4;
if(c>′Z′ && c<=′Z′+4 || c>′z′) c=c-26;
}
cout<<c;
}
cout<<endl;
return 0;
}
其中“c>′Z′ && c<=′Z′+4”,怎么解释,为什么对小写字母不按此处理,即写成c>′z′ && c<=′z′+4而只须写成“c>′z′”即可。求高手帮忙!!!
展开
百度网友85174e3
2012-09-28
知道答主
回答量:37
采纳率:0%
帮助的人:9.9万
展开全部
因为所有小写字母都满足“c>′Z′”条件,从而也执行“c=c-26;”语句,这就会出错。因此必须限制其范围为“c>′Z′ && c<=′Z′+4”,即原字母为′W′到′Z′,在此范围以外的不是原大写字母W~Z,不应按此规律转换。而小写字母不存在这样的矛盾,直接大于c就行 。
直白点说就是:循环一直在用c+4,当循环进行到“c>′Z′“时,也就是从W,X,Y,Z这四个数的时候,输入的c加上4就大于了Z,这时,我们就要c-26,回到大写组的开头,随后再加4来处理,使之变成A,B,C,D四个数。
梦里寻锰
2011-11-24 · TA获得超过4952个赞
知道小有建树答主
回答量:1857
采纳率:100%
帮助的人:649万
展开全部
“c>′Z′ && c<=′Z′+4”意思是字符的ASCII码大于字符Z的ASCII码且小于Z的ASCII码+4
小写字母的ASCII码大于大写字母的ASCII码,只要写成“c>′z′那么c-26 也落在小写字母的ASCII码之间
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shengzhai277
2011-11-27
知道答主
回答量:4
采纳率:0%
帮助的人:6605
展开全部
大小写的阿格码值不同的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwc3456
2011-11-26 · TA获得超过155个赞
知道答主
回答量:63
采纳率:0%
帮助的人:17.9万
展开全部
ccccvccccccgcxvc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式