CCF NOI1000 加密算法

时间限制:

     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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值