Description
从键盘输入一批字符,以@结束,按要求加密并输出。
Input
从键盘输入一批字符,占一行,以@结束。
Output
输出占一行 加密规则: 1)、所有字母均转换为小写。 2)、若是字母'a'到'y',则转化为下一个字母。 3)、若是'z',则转化为'a'。 4)、其它字符,保持不变。
Sample Input
Kyh520@
Sample Output
lzi520
HINT
Source
我的代码:
#include<stdio.h> #include<string.h>
int main(void) { char a; int len, i; while(a = getchar(),a != '@') { if(a >='A' && a<='Z') { a += 32; } if(a >= 'a' &&a <= 'y') { a += 1; } else if(a =='z') { a -= 25; } putchar(a); } printf("\n"); return 0; }
解题思路:
1:循环输入字符
2:根据题意加减ASCII码值即可
错误原因:
1:没有考虑加密字符加密的前后顺序,一种加密情况有可能影响另一种加密情况
经验总结:
1:加密过程一定要充分考虑不同的加密要求,确保不同的加密要求不会互相影响。
2:若两种情况互斥,则应该用if 与else if, 以免加密要求之间互相影响。
最后,这么简单的题我也能错三遍,我太low了。。。。。。