- 时间:2022-03-15 14:27 作者:缘点点 来源: 阅读:378
- 扫一扫,手机访问
摘要:今天偶然发现了这道1064,发现他的题目类型和之前蓝桥杯校内赛的第5题非常的类似。可以说会做1064,就摸到了蓝桥杯的门槛~所以今天就带大家好好学习一下这道与ASCII码有关的题目。对蓝桥杯题目感兴趣的也可以点击以下链接看一下?https://www.jianshu.com/p/89d99b234
今天偶然发现了这道1064,发现他的题目类型和之前蓝桥杯校内赛的第5题非常的类似。可以说会做1064,就摸到了蓝桥杯的门槛~所以今天就带大家好好学习一下这道与ASCII码有关的题目。对蓝桥杯题目感兴趣的也可以点击以下链接看一下👉https://www.jianshu.com/p/89d99b234442
假如对ASCII码类型的题目已经不够熟习的也可以回头看一下最初的两篇题解,题解
1064: 加密字符
- 题目形容
从键盘输入一批字符,以@结束,按要求加密并输出。 - 输入
从键盘输入一批字符,占一行,以@结束。 - 输出
输出占一行
加密规则:
1)所有字母均转换为小写。
2)若是字母'a'到'y',则转化为下一个字母。
3)若是'z',则转化为'a'。
4)其它字符,保持不变。
#include<stdio.h>int main(){ char s; while(s=getchar(),s!='@')//while(scanf("%c",s),s!='@') { if(s>='A'&&s<='Z'){ s=s+32; } if(s>='a'&&s<='y'){ s=s+1; } else if(s=='z'){ s='a'; } else s=s; printf("%c",s); } return 0;}
- 做题先从读题开始,首先是输入:输入一批字符,说明这里要用循环进行输入,以@结束,说明我们要把循环结束的限制条件设置为!=‘@’。所以我们的输入就是 while(s=getchar(),s!='@')。getchar是一个读取字符的函数,这里直接用scanf代替输入也是可以的。
- 接着我们根据加密的规则,对应ASCII码的表逐一用if进行判断与改变。这里要注意,if里面的判断肯定要用双==,而不要用=。==表示比较,=表示赋值。
- 这里几个if和else if的选用也有其深意。例如第一个if囊括了所有的大写,所以下面判断小写字母时,这里是没有因果关系的,故第二个仍然用if,而第三个用else if是由于这里与上面判断a到y有递进关系,故用else if。
其余没有太多需要注意的地方了,假如还不够了解的同学可以在下面评论区提问,我会尽量答复。