问题 D: 习题6-12 解密
题目描述
有一行电文,已按如下规律译成密码:
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 arr[1000];
memset(arr,0,sizeof(arr));
scanf("%s", arr);
int len = strlen(arr);
int i;
for(i = 0; i < len; ++i)
{
if('a' <= arr[i] && arr[i] <= 'z')
{
arr[i] = (char)('z'- arr[i] + 'a');
}
if('A' <= arr[i] && arr[i] <= 'Z')
{
arr[i] = (char)('Z'- arr[i] + 'A');
}
}
printf("%s\n", arr);
return 0;
}
解密逆序密码算法
本文介绍了一种简单的密码解密方法,通过将英文字母逆序映射,即将A映射为Z,B映射为Y等,实现对特定加密方式的解密。文章提供了一个C语言的示例代码,展示了如何读取密文并将其转换回原文。

被折叠的 条评论
为什么被折叠?



