描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)
1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)
2. 逆序存储(abcd -> dcba )
3. 大小写反转(abXY -> ABxy)
输入
一个加密的字符串。(长度小于50且只包含大小写字母)
输出
输出解密后的字符串。
样例输入
GSOOWFASOq
样例输出
Trvdizrrvj
我的代码
#include
#include
int main()
{
char ch[256];
int i,a,t=0;
gets(ch);
int len=strlen(ch);
for(i=0;i
{
if(ch[i]>='X'&&ch[i]<='Z') ch[i]-=23;
else if(ch[i]>='A'&&ch[i]<'X') ch[i]+=3;
else if(ch[i]>'a'&&ch[i]<'x') ch[i]+=3;
else if(ch[i]>='x'&&ch[i]<='z') ch[i]-=23;
}
for(i=0;i
{
if(ch[i]>='A'&&ch[i]<='Z') ch[i]+=32;
else if(ch[i]>='a'&&ch[i]<='z') ch[i]-=32;
}
for(i=len-1;i>=0;i--)
{
printf("%c",ch[i]);
}
return 0;
}
NOI一直给的是8分,可是并未发现错误,希望大神指点一下

NOI 上加密的病历单(字符串)的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- bobhuang 2019-11-11 17:25关注
看到一个bug,这行:
else if(ch[i]>'a'&&ch[i]<'x') ch[i]+=3;
这个比较改一下:
ch[i]>='a'
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报