用scanf函数从键盘输入5个任意字符,如果是英文字母,按照上述算法解密,否则原样输出,如果解密后不是字符,从'Z’、'y…循环解密。
时间: 2023-07-16 13:16:30 浏览: 89
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
以下是示例代码:
```c
#include <stdio.h>
int main() {
char c[5];
int i;
printf("请输入5个任意字符:\n");
for (i = 0; i < 5; i++) {
scanf("%c", &c[i]);
getchar(); // 读取输入缓冲区中的换行符
}
printf("解密后的结果是:\n");
for (i = 0; i < 5; i++) {
if (c[i] >= 'a' && c[i] <= 'z') {
printf("%c", 'a' + ('z' - c[i]));
} else if (c[i] >= 'A' && c[i] <= 'Z') {
printf("%c", 'A' + ('Z' - c[i]));
} else {
printf("%c", c[i]);
}
}
printf("\n");
return 0;
}
```
解释一下代码的思路:
1. 首先用一个字符数组 `c` 来存储输入的5个字符。
2. 然后用循环读取输入,每次读取一个字符,然后用 `getchar()` 函数读取输入缓冲区中的换行符,以避免影响后续输入。
3. 接着用循环遍历字符数组 `c`,对于每个字符进行判断:
- 如果是小写字母,就用 `a + (z - c[i])` 的方法进行解密;
- 如果是大写字母,就用 `A + (Z - c[i])` 的方法进行解密;
- 如果不是字母,就直接输出原字符。
4. 最后输出解密后的结果。
阅读全文