时间限制:
1000 ms 空间限制: 262144 KB
题目描述:
神龙数码公司设计了一个加密算法:用a代替z,用b代替y,用c代替x,......,用z代替a。现要求输入一个小写字母,对其进行加密 输出。
输入
输入一个小写字母。
输出
输出加密后的字符。
样例输入
a
样例输出
z
问题分析
这是一个编码问题,也是有关输入输出的问题。
程序说明
有两种解法,一种是计算法,另外一种是查表法。
因为字符编码采用ASCII码,a-z、A-Z和0-9是顺序连续编码的,计算上十分方便。
由于本题的编码规则(加密规则)是有规律的,所以采用查表法不如计算法简洁。但是,如果编码没有规律,则查表法的优点是显而易见的。
要点详解
函数getchar()和函数putchar()是标准输入输出函数,其原型定义在stdio.h中
更加简洁的写法:putchar('a' + 'z' - (c = getchar()));
另外一个更加简洁的写法:putchar(encipher[(c = getchar()) - 'a']);
代码一:
#include<stdio.h>
int main(void){
char c;
c=getchar();
putchar('a'+'z'-c);
return 0;
}
代码二:
#include<stdio.h>
int main(void){
char c;
putchar('a'+'z'-getchar(c));
return 0;
}
代码三:(数组)
#include<stdio.h>
int main(void){
char c;
char s[]="zyxwvutsrqponmlkjihgfedcba"; //字符串数组存字符串
putchar(s[getchar(c)-'a']);
return 0;
}