这是C语言选拔赛最后一题,题目如下:

/*
* c语言竞赛初赛本科最后一题
*/
#include<stdio.h>
#include<string.h>
//矩阵
char matrix[5][5];
//存储26个字母在矩阵中的行号和列号,不在矩阵中行列号均为-1
int charSite[26][2];
//填充matrix矩阵
void init()
{
int i,j,k=0,len;
char str[26];
gets(str);
len=(int)strlen(str);
for(i=0;i<25;i++){
if(i<len)
*(*matrix+i)=str[i];
else{
for(j=0;j<i;j++)
if('a'+k==*(*matrix+j)){
k++;
j=-1;
}
*(*matrix+i)='a'+k;
}
}
}
//计算各个字母在矩阵中的行号和列号
void calculateCharSite()
{
int i;
for(i=0;i<26*2;i++)
*(*charSite+i)=-1;
for(i=0;i<25;i++){
charSite[*(*matrix+i)-'a'][0]=i/5;
charSite[*(*matrix+i)-'a'][1]=i%5;
}
}
//加密
void encrypt(char *str)
{
int i;
char ch2,ch1,temp;
int len=(int)strlen(str);
for(i=1;i<len;i+=2){
//两个字母相等或其中一个字母不在矩阵中,不作改变
if(str[i-1]==str[i] || charSite[str[i-1]-'a'][0]<0 ||charSite[str[i]-'a'][0]<0)
continue;
//在同一行或同一列,交换位置
if(charSite[str[i-1]-'a'][0] == charSite[str[i]-'a'][0]
||charSite[str[i-1]-'a'][1] == charSite[str[i]-'a'][1]){
temp=str[i-1];
str[i-1]=str[i];
str[i]=temp;
}else{//不同行,不同列,找对角矩形
ch1=matrix[charSite[str[i-1]-'a'][0]][charSite[str[i]-'a'][1]];
ch2=matrix[charSite[str[i]-'a'][0]][charSite[str[i-1]-'a'][1]];
str[i-1]=ch1;
str[i]=ch2;
}
}
}
void main()
{
char str[100];
init();
calculateCharSite();
gets(str);
encrypt(str);
puts(str);
}

- 大小: 257.1 KB
分享到:
相关推荐
自己写的playfair加密解密算法,绝对可以运行 可供初学者参考一下
在`playfair密码.cpp`文件中,实现Playfair密码的算法可能包括以下步骤: 1. **读取密钥和明文**:程序需要从用户那里获取密钥短语和明文消息。 2. **构建矩阵**:根据密钥短语创建5x5的密钥矩阵。 3. **预处理明文*...
13. 凯尔·奥尼尔(Kieran O'Neill,22岁):出售了第一个网站后,创立了游戏社交平台Playfire,同时管理着全球最大的PlayStation粉丝网站。 14. 布莱克·罗斯(Blake Ross,24岁):19岁参与开发了Firefox浏览器,...
dancetrack0004的gt
本文由普华永道发布,详细分析了2023年全球房地产行业的并购趋势。在全球宏观经济环境变化和货币政策调整背景下,房地产并购活动有所放缓,但仍有大量资金等待入场。文中探讨了办公、工业、住宅、零售和酒店五大板块的具体情况及其面临的挑战与机遇。办公资产受利率上调影响较大,但优质资产需求仍然旺盛;工业地产在电商和供应链调整驱动下持续增长;住宅市场因利率上升导致租赁需求增加;零售业则受益于消费者回归实体店;酒店业则因旅游需求回暖而保持高位并购活动。此外,文章还提到不同区域市场的特点,如美洲、欧洲、中东和亚太地区的具体动态。
计算机二级题库(已经分类).pdf
intel pcm
汽车入门必读,深刻了解底层逻辑
计算机二级模拟试题.pdf
计算机发展和特点.pdf
基于java的图书馆管理系统毕业设计含源文件.doc
计算机汇编原理.pdf
内容概要:本文详细介绍了基于Linux平台的机器人控制系统和路径识别项目的完整设计方案。
计算机二级计算机编程题.pdf
内容概要:本文详细介绍了基于网络流量的设备识别技术,涵盖了其发展历史、TCP/IP协议的基础知识以及当前的研究进展。文章首先回顾了早期设备识别的需求和方法,指出随着物联网设备的多样化和复杂化,传统的设备识别方法已难以满足现代需求。接着探讨了高性能扫描工具的作用,强调了TCP/IP各层协议在网络流量分析中的重要性。文中还深入讨论了两种主要的设备识别方法:基于协议特征和统计特征的分类器学习,以及基于应用层数据的自动化规则生成。最后,文章指出了现有方法的优点和局限性,并展望了未来的研究方向。 适合人群:信息安全研究人员、网络管理员、物联网开发者和技术爱好者。 使用场景及目标:适用于希望深入了解设备识别技术原理及其应用场景的专业人士,旨在帮助他们掌握最新的技术和工具,以应对日益复杂的网络安全挑战。 其他说明:文章引用了两篇权威文献,提供了详尽的技术细节和案例分析,有助于读者全面理解设备识别领域的最新进展。
1. **内容概要**:x86版本汇编密码本程序基于x86汇编编写,支持增删改查。程序经x86架构优化,执行效率高、兼容性好。 2. **适用人群**:适合学习x86汇编的学生、加密技术爱好者、信息安全开发者以及逆向工程从业者。 3. **使用场景及目标**:在数据传输和存储场景下,对敏感数据加密,保障数据安全。学习者能借此深入理解汇编与加密算法,开发者可将其功能集成到项目中。 4. **其他说明**:程序基于x86架构,在其他架构使用可能需适配。使用者需具备一定汇编和加密知识,使用时应遵守法律法规,关注技术动态,适时更新程序 。
内容概要:本文档汇集了 BAT(百度、阿里巴巴、腾讯)的经典面试题目及其详细解答,涵盖了广泛的技术领域。主要内容包括 STL 容器(如 vector、Map、Set)的实现原理,洗牌算法的设计,竞赛排序问题,中位数查找算法,智能指针的实现与循环引用处理,单例模式的线程安全实现,C++ 结构体大小计算,引用与指针的区别,const 和 define 的对比,强制类型转换的区别,虚函数的工作原理,内存管理和多线程编程技巧,Linux 内存分配机制,以及各种算法设计问题(如短网址服务、网页爬虫、大数据处理等)。这些问题不仅涉及基础知识的理解,还包括实际应用场景中的优化和解决方案。 适合人群:具备一定编程基础和技术背景的研发人员,尤其是准备 BAT 技术面试的候选人。 使用场景及目标:①深入理解 C++ 编程语言特性及其标准模板库的实现细节;②掌握常见的数据结构和算法设计技巧;③熟悉操作系统层面的知识,如内存管理、进程通信等;④提高解决实际工程问题的能力,特别是在大规模数据处理方面。 其他说明:文档中的题目难度较大,旨在考察应聘者的综合能力,包括但不限于理论知识的应用、代码实现的质量、解决问题
内容概要:本文详细介绍了如何利用Carsim进行车辆动力学建模并结合Simulink实现ACC(自适应巡航控制)系统的联合仿真。文中涵盖了从环境配置、模型搭建、控制算法设计到最后的数据同步等多个方面。尤其强调了在配置过程中容易出现的问题及其解决方案,如单位制转换、采样时间同步以及PID控制器参数调优等。此外,作者分享了一些实用的经验技巧,如通过状态机实现跟车模式切换、采用抗饱和PID结构提高控制稳定性等。 适用人群:从事汽车电子控制系统开发的技术人员,尤其是对ACC系统感兴趣的工程师。 使用场景及目标:帮助开发者掌握Carsim与Simulink联合仿真的全流程,确保能够成功搭建并优化ACC控制系统,最终达到稳定可靠的跟车效果。 其他说明:文中提供了大量MATLAB/Simulink代码片段作为实例指导,有助于读者更好地理解和应用相关知识点。同时,针对可能出现的各种问题给出了详细的排查步骤和技术建议。
计算机二级VB考试_试题(真题)及详细答案.pdf