本关任务:编写一个程序,将任意一个自然数按如下方法加密并输出,取出每一位数字加 7,得到一列数,取每个数的个位数字,再将首尾数字交换后输出。C语言
时间: 2025-02-05 17:14:09 浏览: 23
在C语言中,你可以创建一个函数来完成这个任务。下面是一个简单的示例程序,它接受用户输入的一个整数,并按照描述的方法进行加密:
```c
#include <stdio.h>
#include <string.h>
// 加密函数,接收一个整数作为输入,返回加密后的字符串
char* encryptNumber(int num) {
// 初始化结果字符串
char encrypted[20];
int len = 0;
// 将数字转换成字符串
char str[10];
itoa(num, str, 10);
// 遍历字符串,对每位数字加7并交换首尾
for (int i = 0; str[i] != '\0'; ++i) {
int digit = str[i] - '0' + 7; // 加上7并转为数字
if (digit > 9) { // 如果超过9,则取余10保持在0-9之间
digit %= 10;
}
encrypted[len++] = (char)(digit + '0'); // 交换后转换回字符并添加到结果
}
// 结尾加上'\0'
encrypted[len] = '\0';
return encrypted;
}
int main() {
int input;
printf("请输入一个自然数: ");
scanf("%d", &input);
// 调用加密函数
char* encryptedStr = encryptNumber(input);
printf("加密后的数字: %s\n", encryptedStr); // 输出加密结果
free(encryptedStr); // 释放内存
return 0;
}
```
在这个程序中,`encryptNumber` 函数首先将输入的整数转换为字符串,然后遍历每个字符,将其对应的数字加7并取个位。如果得到的新数字大于9,就取其模10的结果,保持在0-9范围内。最后,将处理过的数字存储到一个新的字符串中,并在主函数中输出。
阅读全文
相关推荐














