用c语言解决,某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,如果加上后大于10就用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 输入 数据个数和每项数据 输出 加密后的结果
时间: 2024-11-06 22:19:55 浏览: 59
在C语言中,你可以创建一个函数来实现这个加密过程。这里是一个简单的示例程序,它会接收一个四位的整数作为输入,然后按照指定的加密规则处理:
```c
#include <stdio.h>
// 加密函数
int encrypt(int num) {
int encrypted = (num + 5) % 10; // 每位数字加5并取模
if (encrypted > 9) { // 如果超过10,则取余数
encrypted = encrypted - 10;
}
// 交换位置
int temp = encrypted;
encrypted = encrypted * 10 + ((num / 10) % 10); // 第一位和第四位交换
num = num / 100 * 100 + temp * 10 + (num % 10); // 第二位和第三位交换
return encrypted;
}
int main() {
int data_count, input_data;
printf("请输入数据个数:");
scanf("%d", &data_count);
for (int i = 0; i < data_count; ++i) {
printf("请输入第%d位的数据:", i+1);
scanf("%d", &input_data);
int encrypted_num = encrypt(input_data);
printf("加密后的结果为:%d\n", encrypted_num);
}
return 0;
}
```
当你运行这个程序,它会提示你输入数据的数量和每个数据的具体值,然后输出经过加密的结果。
阅读全文