问题 D: 习题6-12 解密
问题 D: 习题6-12 解密
时间限制: 1 Sec 内存限制: 12 MB献花: 197 解决: 171
[献花][花圈][TK题库]
题目描述
有一行电文,已按如下规律译成密码:
A-->Z a-->z
B-->Y b-->y
C-->X c-->x
...... ......
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。
输入
输入一行密文
输出
解密后的原文,单独占一行。
样例输入
ZYX123zyx
样例输出
ABC123abc
参考代码:
#include<stdio.h>
#include<string.h>
int main(){
char a[100];
gets(a);
int cnt=strlen(a);
for(int i=0;i<cnt;i++){
if(a[i]>='A'&&a[i]<='Z'){ //判断a[i]是否为大写字母
a[i]='A'+'Z'-a[i]; //第i个字母变成第(26-i+1)个字母
}
if(a[i]>='a'&&a[i]<='z'){
a[i]='a'+'z'-a[i];
}
}
puts(a);
return 0;
}