有一行电文,已按下面规律译成密码:
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("密码:
");
for(i=0; i<10; i++){
printf("%3c",str[i]);
}
printf("
");
//将密码转换为原文
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("原文:
");
for(i=0; i<10; i++){
printf("%3c",str[i]);
}
printf("
");
}