C语言的问题
2个回答
展开全部
提问人的追问
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询