凯瑟移位密码(c语言)

凯瑟移位密码(c语言)

ID:10223054

大小:109.00 KB

页数:0页

时间:2018-06-12

凯瑟移位密码(c语言)_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《凯瑟移位密码(c语言)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.恺撒移位密码问题描述:“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。恺撒移位,将字母按顺序推后起3位起也可以换成19位,就产生这样一个明密对照表,因此,这里我们设移位为n,可以根据用户自定义移位数。  如:明:ABCDEFGHIJKLMNOPQRSTUVWXYZ  密:TUVWXYZABCDEFGHIJKLMNOPQRS明文FOREST密文YHKXLM1.请根据恺撒密码的思路设计一个恺撒加解密码软件,其中移位数可以根据用户需要在每一次

2、的加密与解密中进行修改。2.由于移位加密对于单个重复的字符很容易被破译,如下对照表所示:明文FREETOO密文YKXXMHH由于重复的字符很容易被破译出所加密的内容,请为恺撒加解密码软件解决单个重复的字符问题。(要求利用单向循环链表存储结构开发加解密软件。)答案:C语言实现#includemain(){charM[100];charC[100];intK=3,i;printf("请输入明文M(不可输入空白串)");gets(M);for(i=0;M[i]!='';i++)C[i]=(M[i]-'a'+K)%26+'a';C[

3、i]='';printf("加密密码是:%s",C);}验证如下:输入:a;输出:d下面两图同样验证上述算法1.约瑟夫问题描述:编号为1,2,……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数。方法1.报m的人出列(将其删除),从他在顺时针方向上的下一个人开始重新从一报数,……,如此下去,直到所有人全部出列为止。试设计一个程序求出出列顺序。要求利用单向循环链表存储结构模拟此过程,按照出列的顺序打印出各人的编号和此人密码。方法2.报m的人出列(

4、将其删除),将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从一报数,……,如此下去,直到所有人全部出列为止。试设计一个程序求出出列顺序。要求利用单向循环链表存储结构模拟此过程,按照出列的顺序打印出各人的编号和此人密码。#include#include"stdlib.h"structele{intno;structele*link;}main(){structele*h,*u,*p;intn,m,i;printf("Pleaseinputn&m:");scanf("%d%d",&n,&m);/*输入n和m*/h=u=

5、(structele*)malloc(sizeof(structele));/*形成首表元*/h->no=1;for(i=2;i<=n;i++)/*形成其余的n-1个表元*/{u->link=(structele*)malloc(sizeof(structele));u=u->link;u->no=i;/*第i个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/puts("Thenumbersofwhowillquitthecycleinturnare:");while(n){for(i=1;i

6、元*/u=u->link;p=u->link;/*p指向第m个表元*/u->link=p->link;/*第m个表元从环中脱钩*/printf("%4d",p->no);free(p);/*释放第m个表元占用的空间*/n--;}printf("Pressanykeytoquit...");getchar();}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。