1. 程式人生 > >Li Qing Xin's blog

Li Qing Xin's blog

時間限制:

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