C语言典型例题59

《C程序设计教程(第四版)——谭浩强》

题目:


例题4.11 译密码。为使电文保密,往往按一定规律将其转换为密码,收报人再按约定的规律将其译回原文。
例如,可以按以下规律将电文变为密码:
将字母A变成字母E,a变为e,即变成其后的第4个字母,W变为A,X变为B,Z变为D


代码:

//《C程序设计教程(第四版)——谭浩强》
//例题4.11 译密码。为使电文保密,往往按一定规律将其转换为密码,收报人再按约定的规律将其译回原文。
//例如,可以按以下规律将电文变为密码:
//将字母A变成字母E,a变为e,即变成其后的第4个字母,W变为A,X变为B,Z变为D#include <stdio.h>
#include <stdlib.h>int bianyi(char arr1[]);//将密码编译为原文int main()
{char arr[100];//充足的原文空间int size=0;int panduan=0;char arr1[]={};char arr1_1[]={};int ch='a';printf("请输入你的编译原文:\n");scanf("%99s",&arr);// 限制输入字符的数量,防止溢出,最多99个字符 + '\0'//	printf("%s\n",arr);size=sizeof(arr)/sizeof(arr[0]);
//	printf("%d\n",size);int i=0;for(i=0;i<=size;i++){if(arr[i]=='\0'){break;}if((arr[i]>=65 && arr[i]<=90)||(arr[i]>=97 && arr[i]<=122)){panduan=1;if((arr[i]>=65 && arr[i]<=86)||(arr[i]>=97 && arr[i]<=118)){arr1[i]=arr[i]+4;}else{if(arr[i]>=87 && arr[i]<=90){arr1_1[i]=90-arr[i]-3;arr1[i]=65+abs(arr1_1[i]);}else{arr1_1[i]=122-arr[i]-3;arr1[i]=97+abs(arr1_1[i]);}}}else{panduan=0;break;}}//判断密码是否接受,是否无效,当panduan为1时,接受密码;当panduan为0时,输出无效!!!	if(panduan==1){printf("将译文转化为密码的内容是:%s\n",arr1);}else{printf("!!!您的原文输入无效,请重新输入!!!\n");}printf("\n");printf("**********************************************\n");printf("你是否为收报人,是否想对接受到的密码进行编译!\n");printf("********************注意**********************\n");printf("******编译请按y键,不想编译为原文请按n键******\n");printf("**********************************************\n");printf("\n");getchar();ch=getchar();if(ch=='y'){printf("编译的原文:\n");bianyi(arr1);}else{printf("结束程序\n");}return 0;
}int bianyi(char arr1[])//将密码编译为原文
{int panduan1=0;
//	char arr1_2[];
//	printf("%s",arr1);int j=0;for(j=0;j<=100;j++){if(arr1[j]=='\0'){break;}if((arr1[j]>=65 && arr1[j]<=90)||(arr1[j]>=97 && arr1[j]<=122)){panduan1=1;if((arr1[j]>=69 && arr1[j]<=90)||(arr1[j]>=101 && arr1[j]<=122)){arr1[j]=arr1[j]-4;}else{if(arr1[j]>=65 && arr1[j]<=68){arr1[j]=arr1[j]+22;}else{arr1[j]=arr1[j]+22;}}}}//判断密码是否接受,是否无效,当panduan1为1时,接受密码;当panduan1为0时,输出无效!!!	if(panduan1==1){printf("将译文重新转化为密码:%s\n",arr1);}return 0;
}

运行结果:

编写代码中遇到的问题:

数组名本身就是地址,不需要使用取地址符&

【错误做法】

【正确做法】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/414990.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Harbor部署docker私人仓库

1、新建虚拟机rhel9 2、配置网络 #修改内核参数使网卡名称为ethxxx grubby --update-kernel ALL --args net.ifnames0reboot #配置网络 vim /etc/NetworkManager/system-connections/eth0.connection 内容为&#xff1a;[connection] ideth0 typeethernet interface-nameeth0…

储能电站变流器设计与仿真研究(文章复现matlab)

为了有效解决交流子网与直流子网间的功率传输&#xff0c; 降低电流谐波&#xff0c; 基于三相电压源型变流器及变流器的控制方法&#xff0c; 在 MATLAB R2018a 环境下搭建了储能变流器的整体仿真模型。 电路主要由三相电网、 三相 PWM 变流器、Buck/Boost 变换器和蓄电池构成…

使用Dify搭建企业知识库聊天机器人

本文简介 在当今数字化时代&#xff0c;企业知识库的建设和维护对于提升工作效率和服务质量至关重要。AI聊天机器人作为知识库的交互界面&#xff0c;可以提供24/7的即时服务。 本文将介绍如何使用 Dify 这一工具快速搭建企业知识库聊天机器人&#xff0c;它可以当你企业的职…

sqli-libs第四关详解

首先判断是数字型注入还是字符型注入 正常显示&#xff0c;说明是字符型注入&#xff0c;那么尝试单引号闭合 还是正常显示&#xff0c;尝试双引号闭合 有报错信息&#xff0c;含有括号&#xff0c;这时就应该想到&#xff0c;sql代码是("$id")这样写的了。直接采取闭…

HTML5有格调的个人介绍网站源码

文章目录 1.设计来源1.1 主界面1.2 个人信息界面1.3 项目统计界面1.4 我的相册界面1.5 朋友评价界面1.6 保持联系界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&a…

第L2周:机器学习-线性回归

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标&#xff1a; 学习简单线性回归模型和多元线性回归模型通过代码实现&#xff1a;通过鸢尾花花瓣长度预测花瓣宽度 具体实现&#xff1a; &#xff08;一&…

【JS】事件捕获和事件冒泡的区别

事件捕获和事件冒泡是指在 DOM 树中处理事件时的两种不同的传播方式。它们之间的主要区别在于事件传播的方向和顺序&#xff1a; 事件捕获&#xff08;Capture&#xff09; 方向&#xff1a; 从最外层的祖先元素向目标元素传播。顺序&#xff1a; 事件首先从最外层的祖先元素…

随机化 bbr probebw cycle phase

常打磨常新&#xff0c;bbr 和 inflight 守恒算法的模型和仿真也在不断优化。 再次给出 bbr 模型&#xff0c;这次修改了 d x d t \dfrac{dx}{dt} dtdx​ 的表达式&#xff0c;由 g 2 ⋅ x ⋅ r m i n g_2\cdot x\cdot r_{min} g2​⋅x⋅rmin​计算。同时加入了微观建模 pro…

5.注册中心的其他实现-Nacos

文章目录 1.Nacos简介2.Nacos的安装2.1Nacos Windows本地启动不成功&#xff1f;2.2Linux环境下载并启动 3. Nacos的使用4.Nacos的负载均衡5.Nacos 健康检查6.Nacos 环境隔离7.Nacos 配置中心7.1为什么需要配置中心7.2 Nacos配置中心使用7.3 Data id7.4Nacos 上Linux部署服务7.…

XSS LABS - Level 13 过关思路

关注这个靶场的其他相关笔记&#xff1a;XSS - LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 进入靶场&#xff0c;老样子&#xff0c;右击&#xff0c;查看页面源码&#xff0c;找找不同&#xff1a; 可以看到&#xff0c;本关又多了一个新字段 t_cook&#xf…

#C++ 笔记二

四、运算符重载 1.友元 1.1 概念 类实现了数据的隐藏和封装&#xff0c;类的数据成员一般定义为私有成员&#xff0c;仅能通过类的公有成员函数才能进行读写。 如果数据成员定义成公共的&#xff0c;则又破坏了封装性。但是在某些情况下&#xff0c;需要频繁的读写数据成员…

【Transformer】基本概述

文章目录 提出背景核心思想—注意力机制流程解析参考资料 提出背景 在Transformer模型出现之前&#xff0c;循环神经网络&#xff08;RNN&#xff09;及其变体&#xff0c;如长短期记忆网络&#xff08;LSTM&#xff09;和门控循环单元&#xff08;GRU&#xff09;&#xff0c;…

Ethercat设备数据 转IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 5 设置网关采集ETHERCAT数据 5 6 用IEC61850协议转发数据 7 7 网关使用多个逻辑设备和逻辑节点的方法 9 8 安装NPCAP 10 9 案例总结 11 1 案例说明 设置网关采集EtherCAT设备数据把采集的数据转成IEC61850协议转发给其…

Ollydbg提示:xxxxxx可能不是一个 32 位 PE 文件,无论如何都尝试载入吗?

原标题&#xff1a;OD提示C:\Users\XuanRan\Desktop\xxxx.exe’可能不是一个个 32 位 PE 文件,无论如何都尝试载入吗? 它的意思就是告诉你&#xff0c;OD现在只能用于32位软件。 如果要调试64位程序&#xff0c;去使用x64dbg x64dbg下载链接&#xff1a; https://github.com…

记一次ssh伪终端修改为shell

问题 用户ssh进行连接后&#xff0c;默认为伪终端。 解决办法&#xff0c;可以先拿到终端shell&#xff0c;查看用户是否为/bin/bash&#xff1a; 不是/bin/bash&#xff0c;使用如下命令进行修改&#xff1a; chsh -s /bin/bash rootservice sshd restart

【WPF】WPF学习之【二】布局学习

WPF布局学习 常用布局Grid网格布局StackPanel 布局CanvasDockPanel布局WrapPanel布局 常用布局 1、StackPanel: 学习如何使用StackPanel进行垂直和水平布局。 2、Grid: 掌握Grid的网格布局技术。 3、Canvas: 了解Canvas的绝对定位布局。 4、DockPanel: 学习DockPanel的停靠…

计算机毕业设计选题推荐-茶园茶农文化交流平台-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

【Redis】Redis 主从复制

文章目录 1 前言2 主从模式介绍3 配置 Redis 主从结构3.1 建立复制3.2 断开复制3.3 其他特性3.4 拓扑结构 4 Redis 主从复制原理4.1 复制过程4.2 PSYNC 数据同步4.3 PSYNC 运行流程 5 主从复制流程5.1 全量复制流程5.2 部分复制流程5.3 实时复制流程 1 前言 分布式系统中存在一…

电路基础 ---- 负反馈放大电路的方框图分析法

1 方框图分析法 方框图如下&#xff1a; 图中 A u o A_{uo} Auo​是一个电压输入的放大器的放大倍数&#xff0c;称为开环放大倍数。 F F F为反馈系数&#xff0c;是一个矢量&#xff0c;是指输出信号 x o x_{o} xo​的多少倍回送到放大器的输入端。 M M M为衰减系数&#x…

新生开学分班用这个查询系统,1分钟即可制作同款系统

新学期已经开始了&#xff0c;老师们又要开始头疼分班的事情了。但别担心&#xff0c;现在有个超好用的查询系统&#xff0c;让分班变得简单又快速&#xff01; 在以前分班可麻烦了&#xff0c;老师们得一个个核对学生信息&#xff0c;还得通知家长。但现在&#xff0c;有了这…