Li Qing Xin's blog
阿新 • • 發佈:2018-12-14
時間限制:
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;
}