文章目录
- 题目
- 分析
- 代码实现
- 代码分析
题目
c语言题库之多个数组从两边移动向中间汇聚
呈现效果:输入想要输入的字符数组呈现数组从两边向中间逐渐打开的样子
分析
- 首先我们需要一组我们想要输入的字符数组用来展示打开的字符
- 其次我们需要进行对数组的替换,也就是我们需要空数组对字符数组进行左右替换
- 对代码的美化,如果出现太快或者屏幕没清理就呈现不出效果
代码实现
#include<string.h>
#include<Windows.h>
#include<stdlib.h>
int main()
{
char arr1[] = "welcome to china";
char arr2[] = " ";
int left = 0;
int right = strlen(arr1) - 1;
while (left <= right)
{
Sleep(1000); //单位是毫秒,1000毫秒等于1s
system("cls");
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf("%s ",arr2);
}
return 0;
}
代码分析
-
首先我们创建一个数组,记录我们想要表达的字符序列,在创建同大小一个空字符数组进行替换
-
设置左右下标,利用双指针法同时对空字符数组的左右下标进行设置替换,要想达到数组从两边移动向中间汇聚的效果,我们得同时先交换空字符数组与我们想要表达出的数组的左右两边,也就是呈现以下图的效果,我们首先得先替换最左边和最右边的字符,替换后打印一次,在进行替换在打印,当左下标大于右下标的时候就没有字符替换了,此时循环停止。
-
代码的美化:在运行代码的时候我们就会发现代码运行很快我们完全看不到多个数组从两边移动向中间汇聚的效果,此时我们就需要运用到Sleep函数了
除此之外,我们可以在对代码进行美化,也就是每次运行一次循环清空一次屏幕,对于清空屏幕需要 用到system函数,system 是 C 语言标准库 <stdlib.h> 中的一个函数,用于执行一个 shell 命令,也就是我们电脑系统中的cmd,执行清空屏幕操作为cls,因为system的参数是字符串,所以需要加双引号。