某个公司采用公用电话传递数据信息,数据是小于8位数得整数.为了确保安全,在传递过程中要加密.
加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10得余数代替该数字,
最后将第一位和最后一位数字交换.
要求通过程序实现数据加密过程.
开发工具位Microsoft VisualC++6.0
可用:
变量和数据类型
运算符
while循环
for循环
数组
这道题太抽象了。。
望高手指点 .谢谢.
/*
加密是可以,但
我想这个解密有一点麻烦吧*/
#include<stdio.h>
#include<conio.h>
typedef int dataType; /*自定义数据类型*/
#define MaxSize 20 /*宏定义数组的最大容量*/
void encryptData(int [],int); /*声明数据加密函数*/
void main(void)
{
dataType inData[MaxSize]={1,2,3,4,5,6,7};/*初始化数组*/
int i;
clrscr(); /*清屏*/
for(i=0;i<7;i++) /*显示加密前的数据*/
printf("%d ",inData[i]);
printf("\n");
encryptData(inData,7); /*加密数据,并传入数组的大小*/
for(i=0;i<7;i++) /*显示加密后的数据*/
printf("%d ",inData[i]);
getch(); /*暂停*/
}
void encryptData(dataType inData[],int num)
{
int i;
int temp;
for(i=0;i<num/2;i++) /*把数组倒序*/
{
temp=inData[i];
inData[i]=inData[num-i-1];
inData[num-i-1]=temp;
}
for(i=0;i<num;i++) /*把数组加5的和再对10求余*/
inData[i]=(inData[i]+5)%10;
temp=inData[0]; /*把第一个数和最后一个数对换*/
inData[0]=inData[num-1];
inData[num-1]=temp;
}