今天做了一道加密和解密的题我感觉很难。
代码
代码题目:某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来
#include <stdio.h>
int my_shuzu(int num,int array[])
{
int len = 0;
int i = 0;
while(num)
{
array[i] = num % 10;
num /= 10;
++i;
++len;
array[i];
}
return len;
}
//加密代码
void JiaMi(int array[], int len)
{
int i;
int temp;
for(i=0;i<len;++i)
{
temp= array[i]+5;
array[i]=temp % 10;
}
temp = array[len-1];
array[len-1] = array[0];
array[0] = temp;
for (i = 0; i < len; ++i)
{
printf("%d", array[i]);
}
printf("\n");
}
//解密代码
void JieMi(int *pb,int len2)
{
int num1;
int temp;
int i;
temp = pb[len2-1];
pb[len2-1] = pb[0];
pb[0] = temp;
for(i=0;i<len2;++i)
{
if(pb[i]<=5)
{
pb[i]+=5;
}
else if(pb[i]>5)
{
pb[i]-=5;
}
}
for(i=0;i<len2;++i)
{
printf("%d",pb[i]);
}
printf("\n");
num1=pb[len2-1];
for(i=len2-1;i>0;i--)
{
num1=pb[i-1]+10*num1;
}
printf("%d\n",num1);
}
int main()
{
int array[8] = {0};
int num=12345678;
int len1=my_shuzu(num,array);
JiaMi(array,len1);
JieMi(array,len1);
}
总结
今天写的这个程序对我来说还是有点难度的,但是我还是坚持的把功能实现了。这个程序写的有点复杂和不规范,我以后会继续改进的我觉得这个程序很考验我对函数的使用情况。