输入1个四位数,将其加密后输出。
方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。
例:括号内是说明
输入
1257
输出
The encrypted number is 4621(每一位上的数字加9除以10取余后,得0146,交换后得到4601)
*/
#include <stdio.h>
int main( )
{
int number, digit1, digit2, digit3, digit4, newnum
scanf("%d", &number)
digit1 = number/1000
digit2 = (number - 1000 * digit1)/100
digit3 = (number - 1000 * digit1 - 100 * digit2)/10
digit4 = number - 1000 * digit1 - 100 * digit2 - 10 * digit3
digit1 += 9
digit1 %= 10
digit2 += 9
digit2 %= 10
digit3 += 9
digit3 %= 10
digit4 += 9
digit4 %= 10
//第三位数是1的情况不做考虑
newnum = digit3 * 1000 + digit4 * 100 + digit1 * 10 +digit2
printf("The encrypted number is %d\n", newnum)
return 0
}
#include <stdio.h>void main()
{
int a[5] /* 存储各位上的数字 */
int num, temp, encripy/* num是要输入的数,temp是交换时用来存储临时值,encripy是加密后的数据 */
int i
do
{
printf("Please input the number:")
scanf("%d",&num)
if(!(num/10000 !=0 &&num/100000==0))
printf("Data error!\n")
}while(!(num/10000 !=0 &&num/100000==0))
a[0] = num/10000%10/* 求各位上的数字 */
a[1] = num/1000%10
a[2] = num/100%10 /* 百位上的数字 */
a[3] = num/10%10/* 十位上的数字 */
a[4] = num%10 /* 个位上的数字 */
for(i = 0i <5++i) /* 开始加密 */
a[i] = (a[i] + 8)%10
temp = a[0] /* 交换位置开始 */
a[0] = a[3]
a[3] = temp
temp = a[1]
a[1] = a[2]
a[2] = temp /* 交换位置结束同时加密结束 */
encripy = a[0]*10000 + a[1]*1000 + a[2]*100 + a[3]*10 + a[4] /* 加密后的数据 */
printf("\nThe scourse number: %d\n", num)/* 输出原数据 */
printf("\nEncripy the number: %d\n\n", encripy) /* 输出加密后的数据 */
}
在VC6.0成功运行,希望对你有帮助!