加密的C++实现

来源:百度知道 编辑:UC知道 时间:2024/05/29 02:35:43
(1)替换密码,例如:每一个字符的ASCII码值加5。
(2)换位密码,例如:从左到右编序号,然后把奇数位上的字符与偶数位上的字符进行交换。
对字符串“Your are best”进行加密。
要求编写C/C++程序实现上述功能。
1、源代码
#include <iostream.h>
void main() {
int i=0;
char arr1[12]="Your are best";
cout<<"原文件:"<<arr1<<endl;
cout<<"替换密码为:";
for(i=0;i<12;i++){
arr1[i]=arr1[i]+5; //将ASCII码加四
cout<<arr1[i];
}
cout<<endl;
char arr2[12]="How are you";
cout<<"换位密码为:";
for(i=0;i<12;i++){
char temp;
if(i%2==0){
temp=arr2[i];arr2[i]=arr2[i+1];arr2[i+1]=temp; //将ASCII码换位
cout<<arr2[i];
}
else cout<<arr2[i];
}
cout<<endl;
}

出圈问题思路步骤:
①建立数组,应注意:p[下标]=编号 ;下标=编号-1;编号s1=p[s1-1]。
对应代码是:for(i=1; i<=n; i++) p[i-1]=i;
②倒序循环for(i=n; i>=2; i--),找出出圈人的“编号”s1。
对应的算法是通过求余得到的!s1=(s1+m-1)%i;
③将刚出圈人的编号先寄存在暂存变量中。
④将刚出圈的人之后至原队列最后一个未出圈的人依次在数组中前移一位。对应的代码是:for(j=s1; j<i; j++) p[j-1]=p[j];
⑤将刚出圈人的编号放置在最后一个未出圈的人的后面,即p[i-1]的位置上。

什么问题?