轻院1064加密字符
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>
#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;
}
{
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了。。。。。。