53342321 2019-11-11 16:41 采纳率: 100%
浏览 1078
已采纳

NOI 上加密的病历单(字符串)的问题

描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)
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分,可是并未发现错误,希望大神指点一下

  • 写回答

1条回答 默认 最新

  • bobhuang 2019-11-11 17:25
    关注

    看到一个bug,这行:

    else if(ch[i]>'a'&&ch[i]<'x') ch[i]+=3;
    

    这个比较改一下:

    ch[i]>='a'
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 链接问题 C++LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接