#include <stdio.h>
void main()
{
//int声明用户输入电话号码
int phone_number;
//int声明用于储存的数组
int deposited[1][7];
//int声明拆分及提取时用到的变量
int num;
//int声明求每为数时的变量
int num1 = 1;
//int声明加密后重新组装时用到的变量
int num2 = 10;
//int声明计算用户输入的数为几位
int num3 = 0;
//int声明计算位数
int num4;
//int声明加密并重新组合后的号码
int secret = 0;
//用户输入8位电话号码
printf(“请输入8位电话号码:”);
scanf(“%d” , &phone_number);
num4 = phone_number;
//计算输入的为几位数
while(num4 > 0)
{
num4 = num4 / 10;
num3++;
}
num3 = num3 – 1;
//对8位电话号码拆分并分别储存到数组
for(num = 0 ; num <= num3 ; num++)
{
deposited[0][num] = phone_number / num1 % 10;
num1 *= 10;
}
//提取每位数并进行加密计算
for(num = 0 ; num <= num3 ; num++)
{
deposited[0][num] = (deposited[0][num] + 5) % 10 ;
}
//重新组装加密后的8位数
for(num = 0 ; num <= num3 ; num++)
{
secret = secret * num2 + deposited[0][num] ;
}
//显示加密后的8位数
printf(“加密后的数据为:%d\n” , secret);
}
------------------------------
问题解决了,原来是自己的疏忽
>> 本文固定链接: http://www.vcgood.com/archives/2110
这个加密没有见过..
不过感觉这个用字符串做比较好.. 不容易出错而且支持的位数要大很多..