对一个4位的整数进行加密。加密规则如下:每位数字都加上5 ,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。要求从键盘输入四位数,系统自动给出加密后的数。测试数据至少包含:四位整数,三位整数,五位整数。用C语言
时间: 2024-11-22 18:35:00 浏览: 24
为了实现这个简单的加密算法,你可以使用C语言的`scanf`函数获取用户输入的四位数,然后通过一系列运算步骤完成加密。以下是代码的一个示例:
```c
#include <stdio.h>
void encrypt(int num) {
int encrypted[4]; // 存储加密后的数字
// 分别对每一位加5并取余
for (int i = 0; i < 4; i++) {
encrypted[i] = (num / (int)pow(10, i)) % 10 + 5;
}
// 交换位置
int temp = encrypted[0];
encrypted[0] = encrypted[3];
encrypted[3] = temp;
temp = encrypted[1];
encrypted[1] = encrypted[2];
encrypted[2] = temp;
// 输出结果
printf("Encrypted number: ");
for (int i = 0; i < 4; i++) {
printf("%d", encrypted[i]);
}
}
int main() {
int input;
printf("Enter a four-digit integer: ");
scanf("%d", &input);
if (input >= 1000 && input <= 9999) { // 检查是否为四位数
encrypt(input);
} else {
printf("Invalid input! Please enter a four-digit number.\n");
}
return 0;
}
```
在这个程序中,我们首先读取用户的输入,检查是否为四位数。如果是,我们就对每个位数进行加5和取余的操作,并按题目要求交换位置。最后,打印出加密后的结果。
测试数据可以包括如下的四位整数、三位整数和五位整数:
1. 输入:1234
2. 输入:678
3. 输入:0001
4. 输入:99999 (注意:这里会提示输入无效)
阅读全文