有一行電文,已按下面規律譯成密碼:
A-->Z a--->z
B--->Y b--->y
...
即第一個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不變。要求編程序將密碼譯回原文,並輸出密碼和原文。
#include <stdio.h>
int main(){
char str[10];
int i,m,n;
gets(str);
printf("密碼:\n");
for(i=0; i<10; i++){
printf("%3c",str[i]);
}
printf("\n");
//將密碼轉換為原文
for(i=0; i<10; i++){
if(str[i]>=65&&str[i]<=90){
m=str[i]-64;
n=26-m+1;
str[i]=64+n;
}
else if(str[i]>=97 && str[i]<=122){
m=str[i]-96;
n=26-m+1;
str[i]=96+n;
}
}
printf("原文:\n");
for(i=0; i<10; i++){
printf("%3c",str[i]);
}
printf("\n");
}
