C语言典型例题31

news2024/9/25 0:43:01

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


习题2.8 请编写程序将China译为密码,密码的规律是:用原来字母后面的第4个字母代替原来的字母。


例如:C后面的4个字母是G,h后面第4个字母为l


代码:

//《C程序设计教程(第四版)——谭浩强》
//习题2.8 请编写程序将China译为密码,密码的规律是:用原来字母后面的第4个字母代替原来的字母。
//例如:C后面的4个字母是G,h后面第4个字母为l

#include <stdio.h>
int main()
{
	char c1 = 'C';
	char c2 = 'h';
	char c3 = 'i';
	char c4 = 'n';
	char c5 = 'a';
	
	char c1_1,c2_2,c3_3,c4_4,c5_5;//存储变换后的密码
	
	//用原来字母后面的第4个字母代替原来的字母
	if((c1>=65 && c1<=90) || (c1>=97 && c1<=122))
	{
		c1_1=c1+4;
	}
		if((c2>=65 && c2<=90) || (c2>=97 && c2<=122))
	{
		c2_2=c2+4;
	}
		if((c3>=65 && c3<=90) || (c3>=97 && c3<=122))
	{
		c3_3=c3+4;
	}
		if((c4>=65 && c4<=90) || (c4>=97 && c4<=122))
	{
		c4_4=c4+4;
	}
		if((c5>=65 && c5<=90) || (c5>=97 && c5<=122))
	{
		c5_5=c5+4;
	}
	
	printf("%c%c%c%c%c",c1_1,c2_2,c3_3,c4_4,c5_5);
	
	return 0;
}

运行结果:



代码改进:(无论输入什么字母,字母都会按照加密规律输出)

代码:

#include <stdio.h>
int main()
{
	char arr1[100];//存储输入的密码
	char arr2[100];//存储按照加密规律输出的密码
	
	//输入输入密码
	printf("请输入密码:");
	scanf("%s",arr1);//数组名不需要取地址
	
	int i = 0;
	for(i=0;arr1[i]!='\0';i++)
	{
		if( (arr1[i]>=65 && arr1[i]<=90) || (arr1[i]>=97 && arr1[i]<=122) )
		{
			arr2[i]=arr1[i]+4;
		}
		else
		 {
			arr2[i] = arr1[i]; // 其他字符保持不变(如z没有后面第4位,则应该保持不变)
		}
	}
	// 添加字符串结束符
	arr2[i] = '\0';
	printf("加密后的密码:%s\n",arr2);

	
	return 0;
}

运行结果:


代码编写过程中遇到的问题:

  1. 字符数组初始化:在输入字符串时,不需要使用取地址符&,直接使用名称即可。
  2. 加密逻辑缺陷:加密逻辑中,仅通过加上 4 来处理字符,导致可能会超出字母范围(如大写字母Z的后面第4位为字符“^”)。需要使用循环逻辑以确保加密后的字母仍然在字母范围内。
  3. 未处理非字母字符:对于非字母字符,当前逻辑将其留空,应该保留这些字符原样。
  4. 字符串结束符:在赋值arr2时未添加字符串结束符 ,导致输出时可能出现未定义行为。
  5. 输出位置问题:在循环中,不应该在每次加密后立即输出,而是在所有字符处理完成后再输出整个加密的字符串。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TinyLLaVA: A Framework of Small-scale Large Multimodal Models

发表时间&#xff1a;22 Feb 2024 论文链接&#xff1a;https://arxiv.org/pdf/2402.14289 作者单位&#xff1a;SKLCCSE, Institute of Artificial Intelligence, Beihang University, Beijing, China Motivation&#xff1a;当前的大语言模型的参数量太大了&#xff0c;作…

flask学习-day1

介绍 django是大而全&#xff0c;flask是轻量级的框架 django提供非常多组件&#xff1a;orm/session/cookie/admin/form/modelform/路由/视图/模板/中间件/分页/auth/contentype/缓存/信号/多数据库连接 flask本身没有太多的功能&#xff1a;路由/试视图/模板/session/中间件…

【C++ 面试 - 基础题】每日 3 题(八)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

24/8/9算法笔记 决策树VS线性回归

from sklearn.tree import DecisionTreeRegressorfrom sklearn.linear_model import LinearRegressionfrom sklearn import datasetsfrom sklearn.model_selection import train_test_split import numpy as np X,y datasets.load_diabetes(return_X_yTrue)#糖尿病数据 X_tra…

03、MySQL-DQL(数据查询语言)

目录 1、编写顺序 2、基本查询 3、条件查询 4、聚合函数 5、分组查询 6、排序查询 7、分页查询 8、执行顺序 1、编写顺序 SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数2、基本查…

Cesium初探-相机

在 Cesium 中&#xff0c;相机&#xff08;Camera&#xff09;是一个非常重要的概念&#xff0c;它代表了用户观察 3D 场景的视角。相机不仅决定了用户看到的内容&#xff0c;还定义了观察的角度、距离和方向。理解 Cesium 中的相机是如何工作的对于创建有效的 3D 地图和地球应…

关于Redis的面试题(一)

一、为什么要使用Redis 内存数据库&#xff0c;速度很快工作单线程worker&#xff0c;串行化&#xff0c;原子操作&#xff0c;IO线程是多线程的。避免上下文切换使用 IO模型&#xff0c;天生支撑高并发kv模型&#xff0c;v具有类型结构具有本地方法&#xff0c;计算数据移动二…

政府经济学(练习题)

政府经济学&#xff08;练习题&#xff09; 一、单项选择题 政府经济活动的主体是&#xff08; &#xff09;。 A.各级政府 B.各级人大 C.各级政协 D.各级党委政府经济的依据主要是&#xff08; &#xff09;。 A.私人财产所有权 B.社会公共权力 C.道德劝说 D.法律制度1776年亚…

通过指令深入了解Linux 3

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 文章目录 1.Linux下的基本指令1.1 more指令&#xff08;有更好的平替&#xff09;1.2 less指令1.3 head指令1.4 tail指令1.5 date指令…

二、Matlab图像处理基础

文章目录 一、Matlab图像处理工具箱二、图像文件的读取2.1 文件信息的读取2.2 图像文件的读取2.3 图像文件的保存2.4 图像文件的显示2.5 像素信息的显示 本章知识点总结 一、Matlab图像处理工具箱 在帮助文档可以搜索到图像处理工具箱的介绍 二、图像文件的读取 2.1 文件信息…

论文笔记:OneBit: Towards Extremely Low-bit Large Language Models

202402 arxiv 1 背景 模型量化主要通过把模型的线性层【nn.Linear】&#xff08;Embedding 层和 Lm_head 层除外&#xff09;转化为低精度表示实现空间压缩 此前工作的基础是利用 Round-To-Nearest&#xff08;RTN&#xff09;方法把高精度浮点数近似映射到附近的整数网格然而…

Sqlserver 创建只读权限用户

Sqlserver 创建只读权限用户 1、右键登录名->新建登录名 2、在常规选项卡中配置登录名、密码、数据库 3、服务器角色选项卡中配置只读角色 4、配置用户映射 5、安全对象选项卡和状态选项卡默认即可

Hadoop集群安装配置,spark集群安装配置

前提&#xff1a;准备3台linux服务器&#xff0c;并保证其网络可进行相互通信 假设三台机器IP分别为&#xff1a; 192.168.88.101 192.168.88.102 192.168.88.103一.配置三台服务器之间SSH免密登录,关闭防火墙&#xff0c;时间同步 三台服务器均执行以下1,2,3,4,5,6,8命令 1…

C++ primer plus 第17 章 输入、输出和文件:文件输入和输出03:文件模式:二进制文件

系列文章目录 17.4.5 文件模式 程序清单17.18 append.cpp 程序清单17.19 binary.cpp 文章目录 系列文章目录17.4.5 文件模式程序清单17.18 append.cpp程序清单17.19 binary.cpp17.4.5 文件模式1.追加文件来看一个在文件尾追加数据的程序。程序清单17.18 append.cpp2.二进制文…

05_ Electron 自定义菜单、主进程与渲染进程通信

Electron 自定义菜单、主进程与渲染进程通信 一、定义顶部菜单二、Electron 自定义右键菜单1、使用 electron/remote 模块实现 三、 Electron 主进程和渲染进程通信场景1&#xff1a;渲染进程给主进程发送异步消息场景2&#xff1a;渲染进程给主进程发送异步消息&#xff0c;主…

Vue3使用ECharts的自定义堆叠条形图(纵向)

先上效果图 展示区域 <div id"main" style"height: 300px; width: 100%"></div> 配置信息 每个种类的data数组是number数组&#xff0c;这里我使用的变量是从接口返回的数据&#xff0c;为了方便理解&#xff0c;年度考核的绿色种类&#x…

AT32F421驱动BLDC 配合上位机控制与调参

AT32F421驱动BLDC 配合上位机控制与调参 &#x1f527;AT32 电机控制与调参上位机软件&#xff1a;ArteryMotorMonitor&#xff1a;https://www.arterytek.com/cn/support/motor_control.jsp?index0&#x1f33f;测试电机参数&#xff1a;2204-12N14P&#xff0c;无感BLDC&…

Summer School science communication project--Laptop Selection Suggestion

目录 Introduction Audiance Usage CPU What is a central processing unit (CPU) Notable makers of CPUs GPU Graphics Card: GPU The classifications of graphics cards The brands of graphics cards Dedicated Graphics Cards GeForce MX Series: GeForc…

渠道刷量怎么办?Xinstall来帮你一键识破!

在App推广的道路上&#xff0c;数据是我们最得力的助手&#xff0c;也是我们最头疼的难题。每日下载量、安装量、注册量……这些看似简单的数字&#xff0c;背后却隐藏着无数的故事。哪个渠道在默默发力&#xff1f;哪个渠道又在浑水摸鱼&#xff1f;这一切&#xff0c;都需要我…

【生信入门linux篇】如何安装一个linux虚拟机用于学习

一.虚拟机 虚拟机&#xff08;Virtual Machine&#xff0c;简称VM&#xff09;是一种软件实现的计算机系统&#xff0c;它能够在物理计算机上模拟出多个独立的计算机环境。每个虚拟机都可以运行自己的操作系统和应用程序&#xff0c;就像在独立的物理计算机上一样。虚拟机技术…