【答案解析】int i,a[4],t;
a[0]=n%10;//取整型n的第一位数字
a[1]=n%100/10;//取整型n的第2位数字
a[2]=n%1000/100;//取整型n的第3位数字
a[3]=n/1000;//取整型n的第4位数字
for(i=0; i<=3; i++)//每位数字加3,取余
{
a[i]+=3;
a[i]%=9;
}
t=a[0];//根据加密算法交换
a[0]=a[3];
a[3]=t;
t=a[1];
a[1]=a[2];
a[2]=t;
return a[3]*1000+a[2]*100+a[1]*
10+a[0]; //重组,返回加密数字
答案考生文件夹
[解析] (1)该程序功能是实现对一个整数的加密,具体的加密方法是:一个四位长的整数,每位数字加上3然后除以9的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,然后返回得到的。
(2)从已给部分源程序的main主函数开始入手,核心函数int fun(int n)中的n参数为输入要加密的整数。
(1)首先取得要加密整数的每一位数字,并存入数组。
(2)根据加密算法,首先利用循环实现每位数字加3,除以9取余。
(3)然后根据加密算法进行数字交换,最后重组,返回密码。