将字母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′”即可。求高手帮忙!!! 展开
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′”即可。求高手帮忙!!! 展开
4个回答
展开全部
因为所有小写字母都满足“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四个数。
直白点说就是:循环一直在用c+4,当循环进行到“c>′Z′“时,也就是从W,X,Y,Z这四个数的时候,输入的c加上4就大于了Z,这时,我们就要c-26,回到大写组的开头,随后再加4来处理,使之变成A,B,C,D四个数。
展开全部
“c>′Z′ && c<=′Z′+4”意思是字符的ASCII码大于字符Z的ASCII码且小于Z的ASCII码+4
小写字母的ASCII码大于大写字母的ASCII码,只要写成“c>′z′那么c-26 也落在小写字母的ASCII码之间
小写字母的ASCII码大于大写字母的ASCII码,只要写成“c>′z′那么c-26 也落在小写字母的ASCII码之间
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ccccvccccccgcxvc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询