Linuxc基础 十一

今天做了一道加密和解密的题我感觉很难。
代码

代码题目:某个公司采用公用电话传递数据信息,数据是小于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);
	
}

总结
今天写的这个程序对我来说还是有点难度的,但是我还是坚持的把功能实现了。这个程序写的有点复杂和不规范,我以后会继续改进的我觉得这个程序很考验我对函数的使用情况。

猜你喜欢

转载自blog.csdn.net/qq_41936758/article/details/84454475