C语言的问题

 我来答
郜烟耿歌
2019-08-06 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:992万
展开全部
提问人的追问
2009-05-28
09:12
[2]还是不怎么明白!如果c是y或z的情况不是应该在[1]中考虑吗?再有如果是y,z需要减30后再减26,为什么E答案只是减了26?还有这条语句if(c>'Z'&&c<='Z'+2)不明白,‘Z+1’,‘Z+2’都不是字母啊!
也可以不在[1]中考虑的。我们可以先减30,如果c的范围是a~x,在[1]式中是可以直接得出结果C~Z的。但是如果c的y和z的话,在[1]式中得到的值是'Z'+1和'Z'+2,Z的ASCII值是90,也就是说此时c='Z'+1=91和c='Z'+2=92,而'A'、'B'的值分别为65和66。
if(c>'Z'&&c<='Z'+2)也可以改写为if(c>90
&&
c<=92),是用来判断c的值是否要变成A、B的值的。所以在[2]中我们要将原来的值减去26,从而得到需要的结果。
'Z'+2不是字母,是Z对应的ASCII值90再加上2,也就是92
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙秀荣赖诗
2019-07-29 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:993万
展开全部
[1]填B,[2]填E
【1】因为小写字母的ASCII码比大写字母的大32.用小写字母—32等于大写字母。比如a-32=A,q-32=Q。所以a-30=C,q-32=S。所以是c-=30;
【2】如果c是y或z,减30后不是大写字母。再减26后得到大写字母,相当于y-30-26=A,z-30-26=B;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式