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时刻的延迟以及清屏,小伙伴们可以在程序当中试下看看运行结果👀
最后
自身的学习效率感觉好慢啊,不行一定要提升自身的学习效率才行。