Author:MTingle
人工智能专业
荃者所以在鱼,得鱼而忘荃;蹄者所以在兔,得兔而忘蹄;言者所以在意,得意而忘言。吾安得夫忘言之人而与之言哉!
上代码:
#include<windows.h>
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "Welcome to my thought!!!";
char arr2[] = "************************";
int left = 0;
int right = strlen(arr2) - 1;
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(233);
system("cls");
left++;
right--;
}
printf("%s\n", arr2);
}
这其实是一个再简单不过的代码,就是左右动态打印"Welcome to my thought!!!"
首先我们要得到字符串的长度,最左边和最右边的数组下标,然后就是将这个数组打印出来,所以我们需要设置一个while循环,那么循环什么时候停止呢,那当然是当我们的左右打印的字母会和的时候,所以要做到while(left<=right),我们设置了两个数组,然后用数组arr1不断覆盖数组arr2的内容,每覆盖一次,就打印一次。
但是因为计算机的运行速度太快了,所以我们需要Sleep这个函数,简单理解就是让计算机休息一下,停止运行一会,括号里面单位是毫秒,这个函数需要头文件#include<windows.h>
那么我们知道,打印之后内容会停在屏幕上,所以我们每覆盖一次就需要清屏一下,然后下一次打印的时候,就好像是上次的内容直接被这次的覆盖了,所以我们需要用到system("cls")这个函数,这个函数同样需要包含头文件#include<windows.h>(cls表示清屏的意思,是一个命令)
每打印一次,我们的数组下标就要移动一下,所以就有了left++和right--;
因为我们知道cls放在了printf后面,所以我们的打印结果最后一定会被清空,所以我们需要退出循环后,再次将"Welcome to my thought!!!"打印出来,就好像他是顺着跑出来的一样
总结:
或许我们在学校中一直在刷题,刷着刷着有的人受挫就失去了对编程的兴趣,或许我们可以用我们有限的知识写一些有趣的代码,让我们感受到编程有趣的一面
相信在做这个问题的大家肯定是刚刚步入大一的新生,你们或许正在被C语言困扰,希望这些博客可以帮助到你们,作为一个曾经也被C困扰的过来人,上课听不懂是常态,希望大家不要焦虑不要迷茫,不会写不知道怎么下手是一件再正常不过的事情,当你看的越来越多,做的越来越多,你的代码能力一定会有很大的提升的!!!
博主将持续更新有关C语言的基础题目,java的基础练习,以及数据结构的内容,有需要的可以关注一下