【C语言】题目23 - 编写代码,演示多个字符从两端移动,向中间汇聚。(循环一次延迟1s再然后清屏,最后打印出字符)

242 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情

Hello,大家好,我是泽奀,一起学习进步(●'◡'●)。
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

前言

今天开始C语言的第二十三题的练习,这道题目稍微比前面会难点,所以一定要认真做才行。加油(*^_^*)

题目描述

编写代码,演示多个字符从两端移动,向中间汇聚。(循环一次延迟1s再然后清屏,最后打印出字符) 

题目分析

首先演示字符串从两端进行移动,那么我们肯定是需要先创建两个字符串数组才行。分别定义arr1、arr2数组名。如下所示↓

char arr1[] = "Cyuyuanyyds";
char arr2[] = "###########";

其次向中间汇聚,首先必须要有循环这个循环直接左下标<=右下标即可。

左右下标每次循环一次,左下标自增++,右下标自增--。

直到循环条件表达式不满足就退出,再把arr2的数组标识符给打印出来。

再这里介绍下清屏函数和延迟函数的使用:头文件是#include<Windows.h>

Sleep();//延时函数,注意:S要大写 1000 = 1s
system("cls");//清屏函数

那么以上就是本道题目的解析了,不知道你学会了没有鸭(●ˇ∀ˇ●)

题目代码

#include<stdio.h>
#include<string.h>//strlen长度的头文件
#include<windows.h>//system("");执行命令头文件

int main(void)
{
	char arr1[] = "nageshijieshimeng";
	char arr2[] = "#################";
	int left = 0;//👈下标 访问下标元素从0开始
	int right = strlen(arr1) - 1;//长度字符串 👉下标 下标比元素个数少1,所以需要减1

	while (left <= right)//当👈下标<=👉下标(字符)时候则停止循环
	{
		arr2[left] = arr1[left];  //把[arr1]n=[arr2]#   左边left第一个字符
		arr2[right] = arr1[right];//把[arr2]g=[arr2]#   右边right第一个字符

		printf("%s\n", arr2);
		Sleep(1000);  //延迟1000ms = 1s
		system("cls");//清空当前屏幕
		left++;
		right--;
	}
	printf("%s\n", arr2);//最后打印出结果
	return 0;
}

运行结果

C########s
Cy######ds
Cyu####yds
Cyuy##yyds
Cyuyanyyds
Cyuyanyyds

实际演示效果会有1s时刻的延迟以及清屏,小伙伴们可以在程序当中试下看看运行结果👀

最后

自身的学习效率感觉好慢啊,不行一定要提升自身的学习效率才行。