12:加密的病历单
- 总时间限制: 1000ms 内存限制: 65536kB
- 描述
-
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)
1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)
2. 逆序存储(abcd -> dcba )
3. 大小写反转(abXY -> ABxy) - 输入
- 一个加密的字符串。(长度小于50且只包含大小写字母)
- 输出
- 输出解密后的字符串。
- 样例输入
-
GSOOWFASOq
- 样例输出
-
Trvdizrrvj
- 来源
- 医学部计算概论2011年期末考试(王志钢)改编

1 #include<stdio.h> 2 #include<string.h> 3 void fun1(char a[]);//将a[]循环右移三位 4 void fun2(char a[]);//将a[]逆序存储 5 void fun3(char a[]);//将a[]大小写反转 6 int main() 7 { 8 char str[100]; 9 gets(str); 10 fun1(str); 11 fun2(str); 12 fun3(str); 13 puts(str); 14 return 0; 15 } 16 void fun1(char a[])//将a[]所有的字符都在字母表中循环右移三个位置( abz -> dec) 17 { 18 int i,len=strlen(a); 19 for(i=0;i<len;i++) 20 { 21 if(a[i]>='a'&&a[i]<='z') 22 { 23 a[i]=a[i]+3; 24 if(a[i]>'z') 25 a[i]=a[i]-'z'-1+'a'; 26 } 27 else 28 { 29 a[i]=a[i]+3; 30 if(a[i]>'Z') 31 a[i]=a[i]-'Z'-1+'A'; 32 } 33 } 34 } 35 void fun2(char a[])//将a[]逆序存储 36 { 37 int i,j,len=strlen(a); 38 char t; 39 for(i=0,j=len-1;i<j;i++,j--) 40 { 41 t=a[i];a[i]=a[j];a[j]=t; 42 } 43 } 44 void fun3(char a[])//将a[]大小写反转 45 { 46 int i,len=strlen(a); 47 for(i=0;i<len;i++) 48 { 49 if(a[i]>='a'&&a[i]<='z') 50 { 51 a[i]=a[i]-32; 52 } 53 else 54 { 55 a[i]=a[i]+32; 56 } 57 } 58 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
2014-01-22 归并排序和快速排序【二分法】【资料来自网络】