当前位置: 首页 > news >正文

C语言蓝桥杯1003: [编程入门]密码破译

要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.
例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

  • 变量初始化:定义了五个字符变量 c1c2c3c4c5,并分别初始化为 'C''h''i''n''a'
  • 译码运算
    • 对于大写字母,先将其减去 'A' 得到一个 0 到 25 之间的整数,代表该字母在字母表中的位置。
    • 然后加上 4,表示向后移动 4 个位置。
    • 接着对 26 取模,以处理字母表循环的情况(即从 'Z' 再往后会回到 'A')。
    • 最后再加上 'A',将结果转换回对应的大写字母。
    • 对于小写字母,处理方式类似,只是将 'A' 换成 'a'
  • 输出结果:使用 printf 函数输出加密后的字符串。
#include <stdio.h>

// 对单个字符进行译码的函数
char decode_char(char c) {
	if (c >= 'A' && c <= 'Z') {
		// 大写字母的处理
		return (c - 'A' + 4) % 26 + 'A';
	}
	else if (c >= 'a' && c <= 'z') {
		// 小写字母的处理
		return (c - 'a' + 4) % 26 + 'a';
	}
	// 如果不是字母,直接返回原字符
	return c;
}

int main() {
	char input[100];
	// 读取输入的密码
	scanf("%s", input);

	int i = 0;
	while (input[i] != '\0') {
		// 对每个字符进行译码
		input[i] = decode_char(input[i]);
		i++;
	}

	// 输出译码后的密码
	printf("%s\n", input);

	return 0;
}

相关文章:

  • 【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)——4.2 LSTM的引入与解决长期依赖问题的方法】
  • 第一章嵌入式系统概论考点05数字(电子)文本
  • 计算机网络-八股-学习摘要
  • 【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)
  • 一天急速通关SpringMVC
  • 算法08-递归调用转为循环的通用方法
  • Lua闭包的使用以及需要注意的问题
  • RadASM环境,win32汇编入门教程之二
  • 技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
  • 第四十四篇--Tesla P40+Janus-Pro-7B部署与测试
  • CI/CD部署打包方法
  • 2.11寒假
  • SiliconCloud 支持deepseek,送2000w token
  • 使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)指南
  • 剑指offer第2版:搜索算法(二分/DFS/BFS)
  • 算法练习——哈希表
  • Python实现从SMS-Activate平台,自动获取手机号和验证码(进阶版2.0)
  • 前端包管理器的发展以及Npm、Yarn和Pnpm对比
  • AWTK fscript 中的 TCP/UDP 客户端扩展函数
  • C++课程设计 运动会分数统计(含源码)
  • 马上评|中学生被操场地面烫伤,谁的“大课间”?
  • 国防部:菲方应停止一切侵权挑衅危险举动,否则只会自食苦果
  • 商务部新闻发言人就暂停17家美国实体不可靠实体清单措施答记者问
  • 茅台回应“茅台1935脱离千元价位带竞争”:愿与兄弟酒企共同培育理性消费生态
  • 香港暂停进口美国北达科他州一地区禽肉及禽类产品
  • 《新时代的中国国家安全》白皮书(全文)