C语言练习题-C语言练习题实例89
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
程序分析:该程序实现了对四位整数的加密过程。首先,我们将输入的四位整数分解成各位数字并存储在数组中。然后,对数组中的每个数字执行加密规则:加上5后取余数。接下来,我们将数组中的第一位和第四位进行交换,第二位和第三位进行交换。最后,我们将加密后的数字按逆序打印出来。
实例
#include <stdio.h>
int main() {
int a, i, aa[4], t;
printf("请输入四位数字:");
scanf("%d", &a);
aa[0] = a % 10;
aa[1] = a % 100 / 10;
aa[2] = a % 1000 / 100;
aa[3] = a / 1000;
for (i = 0; i <= 3; i++) {
aa[i] += 5;
aa[i] %= 10;
}
for (i = 0; i <= 3 / 2; i++) {
t = aa[i];
aa[i] = aa[3 - i];
aa[3 - i] = t;
}
printf("加密后的数字:");
for (i = 3; i >= 0; i--)
printf("%d", aa[i]);
printf("\n");
return 0;
}
以上实例运行输出结果为:
请输入四位数字:1234
加密后的数字:9876
在这个程序中,我们使用了取模运算和整数除法来将输入的四位数字拆解为各位数字,并存储在数组 aa
中。然后,我们按照加密规则对数组中的数字进行处理:加上5后取余数。接下来,我们通过交换数组中的元素来实现数字的位置调换。最后,我们按逆序打印出加密后的数字。