轻院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>
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了。。。。。。




posted @ 2017-10-13 19:42  moonlight987  阅读(461)  评论(0编辑  收藏  举报