编写代码,演示多个字符从中端移动,向中间汇聚。
首先,明确代码要实现的功能
屏幕上一开始出现多个“*”号。
演示多个字符从两端向中间汇聚,最终显示出“welcome to china!!!!!”。
然后,我们完成程序的具体实现
1.存储所需数据。
建立两个数组,存储原字符信息和需要打印的字符信息:
#include <stdio.h>
int main()
{
char arr1[] = "welcome to china!!!!!"; //需要打印的字符数据
char arr2[] = "*********************"; //原字符数据
return 0;
}
2. 实现字符从两端向中间汇聚。
要实现从两端向中间汇聚,就要确定两端的位置:
#include <stdio.h>
#include <string.h> //使用strlen函数需要调用string.h头文件
int main()
{
char arr1[] = "welcome to china!!!!!";
char arr2[] = "*********************";
int left = 0; //左下标
int right = strlen(arr1)-1; //右下标
return 0;
}
向中间汇聚,利用循环实现:
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "welcome to china!!!!!";
char arr2[] = "*********************";
int left = 0;
int right = strlen(arr1)-1;
while (left<=right) //利用循环实现字符从两端向中间汇聚
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
left++;
right--;
}
return 0;
}
3.优化程序:
可以利用Sleep函数实现显示间隔和system函数来清空屏幕以美化显示效果:
#include <stdio.h>
#include <string.h>
#include <windows.h> //使用system函数需要调用windows.h头文件
#include <stdlib.h> //使用Sleep函数需要调用stdlib.h头文件
int main()
{
char arr1[] = "welcome to china!!!!!";
char arr2[] = "*********************";
int left = 0;
int right = strlen(arr1)-1;
while (left<=right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);//Sleep函数是实现睡眠,单位是毫秒(注意Sleep函数中S是大写)
system("cls");//system是一个库函数,可以执行系统命令,cls是清空屏幕的一个命令
left++;
right--;
}
printf("%s\n", arr2);
return 0;
}
最后,程序就实现了
#include <stdio.h>
#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)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);
system("cls");
left++;
right--;
}
printf("%s\n", arr2);
return 0;
}