C语言:编写代码,演示多个字符从两端移动,向中间汇聚

news2025/1/21 2:51:42

题目:

给出第一个字符串,如:"welcome to school!!!!!"

设置第二个字符串"######################"

两字符串字符数相等

第二个字符串两端开始移动向中间汇聚慢慢显示出第一个字符串

                 

如:

"######################"

"we##################!!"

"welcome##########ol!!!!!"

……

welcome to##chool!!!!!

"welcome to school!!!!!"

                    

 =========================================================================

                       

思路:

总体思路:

(一). 生成题目要求的两个字符串定义左右下标

              

(二). 利用while循环将第二个字符串慢慢从左右两端向中间汇聚显示出第一个循环

               

(三). 使用 Sleep()函数system()函数 进行优化

                


                 

第一步:

(1). 生成第一个字符串 arr1 "welcome to school!!!!!"

第二个字符串 arr2 "######################"

两字符串字符数相等

                     

(2). 定义左右下标left right

                      

实现代码:

#include <stdio.h>
int main()
{
	//生成第一个字符串arr1:
	char arr1[] = "welcome to school!!!!!";
	//生成第二个字符串arr2:
	char arr2[] = "######################";

	//定义左右小标:left 和 right
	int left = 0;
	int right = strlen(arr1) - 1;
	//strlen(数组名称):求数组的长度,计算字符数组中\0前有多少个字符
	//数组长度 - 1 = 最右端下标 

	return 0;
}

实现图片:

 

                 


                 

第二步:

(1). 使用while循环结合左右下标进行循环替换

                     

(2). 利用左右下标将 arr1 左右两端的值付给 arr2 左右两端的值

                  

(3). 打印重新赋值后的arr2,

                     

(4). 调整左右下标,以便下次循环改变下一对左右两端的值。

                       

实现代码:

#include <stdio.h>
int main()
{
	//生成第一个字符串arr1:
	char arr1[] = "welcome to school!!!!!";
	//生成第二个字符串arr2:
	char arr2[] = "######################";

	//定义左右小标:left 和 right
	int left = 0;
	int right = strlen(arr1) - 1;
	//strlen(数组名称):求数组的长度,计算字符数组中\0前有多少个字符
	//数组长度 - 1 = 最右端下标 

	//使用while循环结合左右下标进行循环替换
	while (left <= right)
	//如果 left > right 说明数组中左右下标之间已经没有值了
	//有值就一直循环到没有值
	{
		//利用左右下标将 arr1 左右两端的值赋给 arr2 左右两端的值
		arr2[left] = arr1[left];//将arr1左边的值 赋给 arr2左边的值
		arr2[right] = arr1[right];//将arr2右边的值 赋给 arr2右边的值

		//打印重新赋值后的arr2:
		printf("%s\n", arr2);
		
		//调整左右下标,以便下次循环改变下一对左右两端的值:
		left++; //调整左下标
		right--; //调整右下标
	}

	return 0;
}

实现图片:

                 


                 

第三步:

(1). 使用 Sleep()函数 进行优化:休眠一段时间再执行该函数后面的语句

需要 头文件<windows.h>

使用该函数防止编译器执行太快不利于观察结果

                     

(2). 使用 system()函数 进行优化:system()函数可以执行系统命令

system("cls") 清理屏幕

这里是为了打印一句信息就清理该信息实现类似动态的效果

                  

实现代码:

#include <stdio.h>
#include <windows.h>
int main()
{
	//生成第一个字符串arr1:
	char arr1[] = "welcome to school!!!!!";
	//生成第二个字符串arr2:
	char arr2[] = "######################";

	//定义左右小标:left 和 right
	int left = 0;
	int right = strlen(arr1) - 1;
	//strlen(数组名称):求数组的长度,计算字符数组中\0前有多少个字符
	//数组长度 - 1 = 最右端下标 

	//使用while循环结合左右下标进行循环替换
	while (left <= right)
	//如果 left > right 说明数组中左右下标之间已经没有值了
	//有值就一直循环到没有值
	{
		//利用左右下标将 arr1 左右两端的值赋给 arr2 左右两端的值
		arr2[left] = arr1[left];//将arr1左边的值 赋给 arr2左边的值
		arr2[right] = arr1[right];//将arr2右边的值 赋给 arr2右边的值

		//打印重新赋值后的arr2:
		printf("%s\n", arr2);
		
		//使用Sleep()函数进行优化:
		Sleep(1000);//休眠1000毫秒,即1秒,再执行后面的语句,需要头文件:<windows.h>

		//使用system()函数进行优化:
		system("cls");//清理屏幕

		//调整左右下标,以便下次循环改变下一对左右两端的值:
		left++; //调整左下标
		right--; //调整右下标
	}

	return 0;
}

实现图片:

                 


                 

第四步:

赋值完后,arr2被system(cls)清除了,所以出循环后再打印一次arr2

                     

实现代码:

#include <stdio.h>
#include <windows.h>
int main()
{
	//生成第一个字符串arr1:
	char arr1[] = "welcome to school!!!!!";
	//生成第二个字符串arr2:
	char arr2[] = "######################";

	//定义左右小标:left 和 right
	int left = 0;
	int right = strlen(arr1) - 1;
	//strlen(数组名称):求数组的长度,计算字符数组中\0前有多少个字符
	//数组长度 - 1 = 最右端下标 

	//使用while循环结合左右下标进行循环替换
	while (left <= right)
	//如果 left > right 说明数组中左右下标之间已经没有值了
	//有值就一直循环到没有值
	{
		//利用左右下标将 arr1 左右两端的值赋给 arr2 左右两端的值
		arr2[left] = arr1[left];//将arr1左边的值 赋给 arr2左边的值
		arr2[right] = arr1[right];//将arr2右边的值 赋给 arr2右边的值

		//打印重新赋值后的arr2:
		printf("%s\n", arr2);
		
		//使用Sleep()函数进行优化:
		Sleep(1000);//休眠1000毫秒,即1秒,再执行后面的语句,需要头文件:<windows.h>

		//使用system()函数进行优化:
		system("cls");//清理屏幕

		//调整左右下标,以便下次循环改变下一对左右两端的值:
		left++; //调整左下标
		right--; //调整右下标
	}

	printf("%s\n", arr2);

	return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include <stdio.h>
#include <windows.h>
int main()
{
	//生成第一个字符串arr1:
	char arr1[] = "welcome to school!!!!!";
	//生成第二个字符串arr2:
	char arr2[] = "######################";

	//定义左右小标:left 和 right
	int left = 0;
	int right = strlen(arr1) - 1;
	//strlen(数组名称):求数组的长度,计算字符数组中\0前有多少个字符
	//数组长度 - 1 = 最右端下标 

	//使用while循环结合左右下标进行循环替换
	while (left <= right)
	//如果 left > right 说明数组中左右下标之间已经没有值了
	//有值就一直循环到没有值
	{
		//利用左右下标将 arr1 左右两端的值赋给 arr2 左右两端的值
		arr2[left] = arr1[left];//将arr1左边的值 赋给 arr2左边的值
		arr2[right] = arr1[right];//将arr2右边的值 赋给 arr2右边的值

		//打印重新赋值后的arr2:
		printf("%s\n", arr2);
		
		//使用Sleep()函数进行优化:
		Sleep(1000);//休眠1000毫秒,即1秒,再执行后面的语句,需要头文件:<windows.h>

		//使用system()函数进行优化:
		system("cls");//清理屏幕

		//调整左右下标,以便下次循环改变下一对左右两端的值:
		left++; //调整左下标
		right--; //调整右下标
	}

	printf("%s\n", arr2);

	return 0;
}

实现效果:

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

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

相关文章

Python 中判定整数

直接数值判定&#xff0c;表达式判定。 (本笔记适合学会 Python 基本数据类型&#xff0c;可以“融会贯通”的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#…

IGP协议对SR-MPLS的扩展

目录 OSPF对于SR-MPLS的扩展 OSPF对邻接SID做了细分 10类LSA定义的TLV类型 10类LSA定义的TLV的报文格式 ISIS对SR-MPLS的扩展 ISIS对邻接SID做了细分 ISIS定义的Sub-TLV的类型 ISIS定义的Sub-TLV的报文格式 OSPF对于SR-MPLS的扩展 OSPF为了支持SR-MPLS通过新…

Vue.js 3.x Composition APIs 及简单使用

文章目录 Vue 3.0 和 2.x 的区别源码组织方式packages 目录结构 不同构建版本Composition API 设计动机设计动机Options API Demo:Composition API Demo:对比&#xff1a; 性能提升响应式系统升级编译优化优化打包体积 ViteESModuleVite as Vue-CLIVite 特点 Composition APICo…

NLP学习笔记三-数据处理基础

NLP学习笔记三-数据处理基础 NLP设计的处理处理技术也比较多&#xff0c;我们简单介绍一部分&#xff1a; 1.Tokenization NLP当中的Tokenization&#xff0c;博主以前无论是在文章中还是在代码中都能经常看到&#xff0c;这在自然语言处理中也是比较常用的技术。 Tokenizati…

ASEMI代理英飞凌TLD2314EL参数,LED驱动器TLD2314EL

编辑-Z TLD2314EL参数描述&#xff1a; 型号&#xff1a;TLD2314EL 电源电压VS&#xff1a;40V 输出电压VOUTx&#xff1a;40V 状态电压VST&#xff1a;6V 输出电流IOUTx&#xff1a;130 mA 结温Tj&#xff1a;-40~ 150℃ 储存温度Tstg&#xff1a;-55~ 150℃ 正常工作…

要不是和阿里P7聊过,我也不知道自己是个棒槌

前几天和一个朋友聊面试&#xff0c;他说上个月同时拿到了测试开发岗位腾讯和阿里的offer&#xff0c;最后选择了阿里。 阿里内部将员工一共分为了14个等级&#xff0c;P6是资深工程师&#xff0c;P7是技术专家。 其中P6和P7就是一个分水岭了&#xff0c;P6是最接近P7的不持股…

# Windows 专业版安装 Hyper-V

Windows 专业版安装 Hyper-V 文章目录 Windows 专业版安装 Hyper-V检查要求硬件要求安装方式使用 PowerShell 启用 Hyper-V使用 CMD 和 DISM 启用 Hyper-V通过设置启用 Hyper-V 角色 创建虚拟机Hyper-v 管理器创建Hyper-V Quick Create 完整官网地址&#xff1a;Windows 10 上的…

SpringCloud-Gateway的详细讲解以及完整的示意图和代码-下

目录 二说Gateway 路由配置 创建com/springcloud/config/GateWayRoutesConfig.java 测试 动态路由 示意图 代码实现 测试 注意事项和细节 代码 Predicate/断言 基本介绍 Route Predicate Factories 解读 Route Predicate 实例 After Route Predicate 测试 B…

tamper脚本编写与mitmdump

tamper脚本编写与mitmdump 0x01 前提 ​ 注入点在登录框处&#xff0c;但是目标每次都会先校验验证码&#xff0c;而验证码会在返回包中以json格式出现。 0x02 编写tamper脚本 由于目标的验证码在response中回显出来了&#xff0c;所以我们可以利用tamper脚本去读取验证码&a…

Python:SVOREX

公式看懂了就写导数。写完导数撸码 Car数据集上对比: 在Car数据集上,SVOREX稍微胜出。 """ SVOREX author: Daniel He at CQUPT 2023-06-08 """ import xlwt import xlrd import numpy as np import pandas as pd import matplotlib.pylab a…

17.16按摩师

目录 一、题目 二、分析代码 一、题目 面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int massage(vector<int>& nums) {int nnums.size();// vector<int>dp(n,0);// if(n<0)// return 0;// if(n1…

Docker部署ssh连接工具webssh2

Docker部署ssh连接工具webssh2 一、检查系统版本二、检查docker状态三、下载webssh2镜像四、创建webssh2容器1.创建webssh2容器2.查看webssh2状态3.查看容器运行日志 五、访问webssh21. 访问webssh22. 远程连接服务器3. 文件管理 一、检查系统版本 检查操作系统版本 [rootserve…

Python对普通文件的操作

目录 1. 常用函数语法 1.1. open_打开文件 1.2. read_读取文件 1.3. readlines_读取文件 1.4. csv.reader_读取csv文件 1.5. write_写入内容 2. 操作普通文件 2.1. 读取内容 ① 按大小读取 ② 按行数读取 ③ 按列数读取 ④ 读取大文件 ⑤ 条件过滤 2.2. 写入内容…

一文详解!JMeter该如何并发测试和持续性压测?

目录 前言&#xff1a; 概念 并发测试 持续性压测 查看报告 总结 试试其他 API 工具 知识扩展&#xff1a; 前言&#xff1a; JMeter 是一个 Java 编写的开源负载测试工具&#xff0c;基于模拟用户、线程和请求&#xff0c;结合测试计划和策略&#xff0c;可以模拟真实…

和托托一起学计算机图形学(一)-初识计算机图形学

文章目录 初识计算机图形学一、计算机科学与视觉信息处理二、计算机图形学的应用三、总结 数字图像基础一、像素二、RGB和CMY颜色模型三、颜色编码四、查色表五、图像文件六、总结 初识计算机图形学 一、计算机科学与视觉信息处理 计算机图形学&#xff1a;建模&#xff08;建…

Kafka-Eagle安装及连接成功web端登陆不了问题解决

kafka自身并没有集成监控管理系统&#xff0c;因此对kafka的监控管理比较不便&#xff0c;好在有大量的第三方监控管理系统来使用&#xff0c;常见的有&#xff1a; Kafka EagleKafkaOffsetMonitorKafka Manager&#xff08;雅虎开源的Kafka集群管理器&#xff09;Kafka Web C…

1.7 基于XML配置方式使用Spring MVC

一、基于XML配置与注解的方式使用Spring MVC 1、创建Maven项目 Maven项目 - SpringMvcDemo01 单击【Finish】按钮 2、添加相关依赖 在pom.xml文件里添加支持Spring MVC的相关依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmln…

excel学习--开始界面控制台讲解

1、部分基础控制台讲解 上面的那行表示垂直居中 下面的那行表示水平居中 上面设置表格内容的表现方向 下面设置表格内容的缩进量 合并单元格的两种主要方式即左图所示&#xff0c;一种是跨越合并&#xff0c;另一种是合并单元格&#xff0c;跨越合并只能进行列合并&#xff0c…

09 - Linux进程层次分析

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;Linux系统编程训练营 - 目录 文章目录 1. 详解Linux进程组1.1 Linux进程组1.2 进程组示例程序1.3 编程实验&#xff1a;Linux进程组1.4 深入理解进程组1.4.1 进程组标识设置技巧…

【算法题解】35. 两两交换链表中的节点

这是一道 中等难度 的题 https://leetcode.cn/problems/swap-nodes-in-pairs/ 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff…